Если возможно, простейшим подходом будет неуниверсальный интерфейс IList
:
IList list = (IList)MyObject.ItProperty;
list.Add(obj);
В противном случае вам придется:
- найти соответствующий
T
(используя отражение) - разрешить метод
Add
из IList<T>
(используя отражение) - вызвать метод
Add
(используя отражение)
такое отражение, особенно в отношении дженериков, не очень приятно.
В качестве альтернативы - если у вас 4.0, вы можете попробовать использовать dynamic
, но учтите, что это видит только общедоступный API.Хотя стоит попробовать (только в случае неудачи IList
):
dynamic list = MyObject.ItProperty;
list.Add(obj); // let's hope Add isn't an explicit interface implementation