У меня есть пользовательский элемент управления, который содержит список объектов. Элемент управления создается визуальным дизайнером, а затем настраивается в коде. Элемент управления представляет собой сетку, которая отображает список объектов.
У меня есть такой метод инициализации.
public void Initialise(ISession session, Type type, ICollection<IPersistentObject> objs)
IPersistentObject - это интерфейс. Однако это не работает, когда я хочу назначить коллекцию чего-то, что реализует IPersistentObject.
Так что я изменил это на
public void Initialise<T>(ISession session, Type type, ICollection<T> objs) where T : class, IPersistentObject
Но теперь я хочу присвоить параметр objs переменной-члену типа ICollection<IPersistentObject>
, которая не работает.
Я не могу сделать класс универсальным, потому что это элемент управления, который не может иметь универсальные типы AFAIK. Я не могу скопировать коллекцию, потому что элемент управления ДОЛЖЕН изменить переданную коллекцию, а не взять копию и изменить ее.
Что мне делать?