Я читал примеры Reflection в течение двух дней, и я не могу собрать все вместе, чтобы соответствовать тому, что мне нужно. На самом деле я думал, что использую отражение, пока не заметил, что мое «использование System.Reflection» было серым. : -)
У меня есть XML-файл, который содержит имена моих классов и методы, содержащиеся в них. Порядок методов или даже имена могут измениться. Как только я прочитаю их, я хочу их выполнить. Кажется достаточно простым.
У меня есть следующий тестовый код:
// myClassName = "namespace.TransactionServices"
Type tb = Type.GetType(myClassName);
// Classes will always have the same constructor
object classInstance = Activator.CreateInstance (
tb,
new object[]
{
authorization.apiKey,
authorization.userName,
testData.servicesEndPoint
});
//Grab the method I want
//myMethodName = "GetVersion"
MethodInfo mymethod = tb.GetMethod(myMethodName);
// no parameters for this method call
object result = mymethod.Invoke(classInstance, null);
tb равно нулю. Я просто собирался поработать над попыткой получить правильный API для создания класса, но я даже не знаю, действительно ли остальная часть того, что у меня есть,
Есть предложения?
Спасибо
Редактировать: добавлено пространство имен. Activator.CreateInstance возвращает ошибку, что конструктор не найден .. Он есть.