со вчерашнего дня я работаю над проблемой, но пока не понимаю ...
У меня есть класс со многими методами, и в среде исполнения я решаю, какой метод должен быть вызван. Каждый из этих методов возвращает список с элементами из моих бизнес-объектов.
Мой класс выглядит так:
public class ReflectiveClass {
public List<BO1> DoSomethingWithBO1(int param){
List<BO1> list = new List<BO1>();
//....
return list;
}
public List<BO2> DoSomethingWithBO2(int param){
List<BO2> list = new List<BO2>();
//....
return list;
}
public void Process(){
//...get MethodInfo and so on
List<object> myReturnValue = (List<object>)methodInfo.Invoke(this, new object[]{param});
// here comes the Exception
}
}
Итак, при вызове метода я получил
InvalidCastException
и отладчик сказал мне, что он не может кастовать с
System.Collections.Generic.List`1[BO1]
до
System.Collections.Generic.List`1[System.Object]
Интересно, почему это не работает? Я полагаю, если я использую Список, каждый объект может быть в этом списке.
Я даже пробовал это с List, но такое же поведение.
Можно ли считать рефлексивным тип возвращаемого значения метода? И могу ли я затем создать общий список с этим значением возврата и привести к этому списку? Это было бы замечательно.
Приветствую и большое спасибо за вашу помощь!
Benni