J'ai une méthodeComment appeler dynamiquement une méthode générique basée sur un mappage dans un dictionnaire?
String Foo<T> where T: WebControl
Maintenant, j'ai une chaîne comme « lien hypertexte ». Ce qui est vouloir appeler Foo<Hyperlink>
basé sur un mappage de la chaîne au générique.
À quoi le dictionnaire doit-il ressembler?
Il n'est pas:
private Dictionary<string, Type> _mapping = new Dictionary<string, Type>()
{
{"hyperlink", typeof(HyperLink)}
};
Je veux y accéder comme Foo<_mapping[mystring]>
est-ce possible? Si oui, à quoi doit ressembler le dictionnaire?
Modifier: solution acceptée
String _typename = "hyperlink";
MethodInfo _mi = typeof(ParserBase).GetMethod("Foo");
Type _type = _mapping[_typename];
MethodInfo _mig = _mi.MakeGenericMethod(_type);
return (String)_mig.Invoke(this, new object[] { _props }); // where _props is a dictionary defined elsewhere
// note that the first parameter for invoke is "this", due to my method Foo is not static
J'expurgée mon poste. J'obtiens ce que vous essayez d'accomplir maintenant. Vous voulez appeler dynamiquement une fonction générique. – Thomas
Merci quand même. J'ai édité le titre basé sur votre description ce que j'essayais de faire =) – citronas