我有以下注册。目标是当需要注入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的注册,它似乎优先。任何帮助表示赞赏。感谢。
答案 0 :(得分:1)
我的问题结果是会议注册&#34; RegisterTypes&#34;正在将IDbSet注册到DbSet。此注册优先于我自己的其他注册。我尝试改变订单,但这没有帮助。我必须从注册例程中排除DbSet。排除是container.RegisterTypes上的参数。