Как мне изменить этот фрагмент, чтобы правильно добавить экземпляр A
в List<A>
, B
в List<B>
и т. Д .?
// someChild's actual type is A
object someChild = GetObject();
// collection's actual type is List<A> though method below returns object
dynamic list = GetListFromSomewhere(...);
// code below throws a RuntimeBinderException
list.Add(somechild);
Исключение выдаетсяпоскольку, хотя связыватель обнаруживает Add()
, он переходит в dynamic
, что не позволяет разрешить перегрузку.Я предпочитаю , а не , чтобы изменить вышеприведенное, чтобы использовать отражение, или, по крайней мере, минимизировать это.У меня есть доступ к экземпляру System.Type
для каждого из A
и List<A>
.Класс или метод, содержащий приведенный выше код, сам по себе не является универсальным.