Unity 3,泛型类型无法解析,类型没有可访问的构造函数

时间:2014-09-30 15:14:42

标签: unity-container ioc-container

我有以下注册。目标是当需要注入IDbSet时,它将从请求IDataContext中提取出来。

container.RegisterType<IDbSet<AuditRound>>(new InjectionFactory(c => c.Resolve<IDataContext>().AuditRounds));
var thisReturnsTrue = container.Registrations.Any(e => e.RegisteredType == typeof(IDbSet<AuditRound>));
var fails = container.Resolve<IDbSet<AuditRound>>();

它失败,消息是类型DbSet`1没有可访问的构造函数。看起来它正在尝试使用约定ISomeClass解析为SomeClass,在这种情况下IDbSet转换为DbSet。我确实在注册中看到了IDbSet的注册,它似乎优先。任何帮助表示赞赏。感谢。

1 个答案:

答案 0 :(得分:1)

我的问题结果是会议注册&#34; RegisterTypes&#34;正在将IDbSet注册到DbSet。此注册优先于我自己的其他注册。我尝试改变订单,但这没有帮助。我必须从注册例程中排除DbSet。排除是container.RegisterTypes上的参数。