EDIT: класс/метод, который я пытаюсь запустить эту внутреннюю статична, и поэтому я не в состоянии передать это в generic.Invokeпрохождения статической информации отражения статических универсальных методов
У меня есть статический Класс доступа к данным, который я использую для автоматического анализа данных из разных источников. Я начал перегруппировать его, когда у меня возникла проблема. Im Тринга передать тип в шаблонный метод с помощью отражения, (метод затем анализирует тип и возвращает тип со значением) моего код в настоящее время выглядит как
Type type1 = typeof(T);
var item = (T)Activator.CreateInstance(typeof(T), new object[] { });
foreach (PropertyInfo info in type1.GetProperties())
{
Type dataType = info.PropertyType;
Type dataType = info.PropertyType;
MethodInfo method = typeof(DataReader).GetMethod("Read");
MethodInfo generic = method.MakeGenericMethod(dataType);
//The next line is causing and error as it expects a 'this' to be passed to it
//but i cannot as i'm inside a static class
generic.Invoke(this, info.Name, reader);
info.SetValue(item,DataReader.Read<dataType>(info.Name, reader) , null);
}
возможно дубликат (http://stackoverflow.com/questions/232535/how-to -use-отражательный к вызову унифицированного-метод) –