1
我有几个实现相同接口的类。C#依赖注入投射问题
interface IBidManager<E> where E : IEntity
public class BidManager : IBidManager<EntityObject1>
public class BidManager2 : IBidManager<EntityObject2>
public class BidManager3 : IBidManager<EntityObject3>
在我的业务经理级的我:
public class BusinessManager : ManagerBase
{
private IBidManager<IEntity> _bidLogicManager;
...
在BusinessManager是一个功能我称之为改变_bidLogicManager(MyType的是一个枚举)
public void SetLogic(MyType auctionType)
{
switch (MyType)
{
case AuctionType.Classic:
_bidLogicManager = (IBidManager<IEntity>)new BidManager();
break;
...
IEntity是空白的接口,我用我的POCO类生成的T4和实体框架。
我可以发誓,这是工作,但我再次尝试它和它的投掷的错误sayng:
Unable to cast object of type 'BLL.MyManagers.BidManager' to type 'BLL.BidManagers.IBidManager`1[Entities.IEntity]'.
当我删除(IBidManager)视觉工作室告诉我一个明确的转换不存在...但是吗?
我不想创建BusinessManager类,像这样的时候来定义类型:
public class BusinessManager<E> : ManagerBase where E : class, IEntity
{
IBidManager<E> _bidLogicManager;
而且,我不能创建在企业管理器需要,因为这是一个IBidManager<E>
参数的函数是一个n层asp.net应用程序,我不想让UI层知道任何有关IBidManager的信息。
我这样做,看起来像它的工作!我想这只需要3个字母来解决它大声笑。谢谢! – 2010-07-01 01:14:23