У меня есть метод
String Foo<T> where T: WebControl
Теперь у меня есть строка типа "гиперссылка". То, что нужно, это вызвать Foo<Hyperlink>
на основе сопоставления строки со стандартным.
Как должен выглядеть словарь?
Это не:
private Dictionary<string, Type> _mapping = new Dictionary<string, Type>()
{
{"hyperlink", typeof(HyperLink)}
};
Я хочу получить к нему доступ, как Foo<_mapping[mystring]>
это возможно? Если да, то как должен выглядеть словарь?
Редактировать : Принято решение
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