У меня есть два разных класса, происходящих из одного базового класса.Каждый из них имеет коллекцию, производную от другого базового класса, но различного производного класса.
class MasterA : MasterBase<ClientA>
class MasterB : MasterBase<ClientB>
public class MasterBase<ClientClass> where ClientClass : ClientBase
{
public List<ClientClass> Clients;
}
Class ClientA : ClientBase
Class ClientB : ClientBase
Class ClientBase
Я хочу иметь UserControl, который работает с родительскими / дочерними списками обоих Master / Client любого типа (A или B).
public class Test<MasterClass> where MasterClass : MasterBase<ClientBase>
{
GenericRepository<MasterClass> repo = new GenericRepository<MasterClass>();
MasterClass master = repo.GetAll;
// do some changes to (base fields of) the master collection and its client collection !
repo.SaveOrUpdate(master);
}
Но .... я не могу создать экземпляр этого класса Test ..
var t = new Test<MasterA>();
>> There's no implicit reference conversation from MasterA to MasterBase<ClientBase>
Итак, есть ли способ изменить класс Test, чтобы иметь возможность делатьчто я указал?был бы очень признателен за некоторые советы.