У меня есть 3 класса: A, B и C
Все эти классы реализуют интерфейс IMyInterface
Я бы хотел, чтобы интерфейс был определен так:
internal IMyInterface<E> where E: class
{
E returnData();
}
чтобы он мог возвращать данные типа E.
Тип «E» будет объектом POCO, созданным с помощью Entity Framework v4.
В отдельном классе у меня есть:
public class MyClass()
{
IMyInterface<??> businessLogic;
public setBusinessLogic(IMyInterface<E> myObject)
where E : class
{
businessLogic = myObject;
}
}
Я попытался поместить <object>
вместо <??>
, но он не смог привести мой тип сущности poco.
Я попытался, чтобы мои сущности реализовали пустой интерфейс IEntity
, а затем
IMyInterface<IEntity> businessLogic;
...
businessLogic = new A<POCOObject>();
Результат:
Cannot implicitly convert type
'A<POCOObject>' to
'IMyInterface<IEntity>'. An explicit
conversion exists (are you missing a
cast?)
Есть рекомендации?
Редактировать: Я пытался объявить мои классы A, B и C как:
internal class A : IBidManager<EntityObjectType>
и
internal class A<E> : IBidManager<E> where E : class
приводит к той же ошибке.