Jak mogę zmienić ten fragment kodu, aby poprawnie dodać wystąpienie A
do List<A>
, B
do List<B>
itp.?Jak dodać T do listy <T> gdzie lista <T> maskuje się jako "dynamiczny", a T jako "obiekt"?
// 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);
jest wyjątek gdyż podczas Add()
znajduje się w spoiwie, jest on przechodzi dynamic
która nie rozdzielczość przeciążeniem. Wolę niż, aby zmienić powyższe, aby użyć odbicia, lub przynajmniej aby to zminimalizować. Mam dostęp do instancji System.Type
dla każdego z A
i List<A>
. Klasa lub metoda zawierająca powyższy kod sama w sobie nie jest generyczna.