0
我想注入一个EF ObjectContext使用Unity构造函数注入。 我学尝试是在这样的bootsprapper注册类型:统一:构造函数注入与多个构造函数
protected override void ConfigureContainer()
{
base.ConfigureContainer();
Container.RegisterType<ObjectContext, MyObjectContext>(new InjectionConstructor());
}
EF创建多发的构造看起来像这些
public MyObjectContext() : base("name=MyObjectContext", "MyObjectContext")
public MyObjectContext(string connectionString) : base(connectionString, "MyObjectContext")
public MyObjectContext(EntityConnection connection) : base(connection, "MyObjectContext")
调试时我的代码统一将引发ResolutionFailedException告诉我“之类MyObjectContext有多个长度为1的构造函数。无法消除歧义。“在具有以下构造函数的新类解析时。
public MainViewModel(UnityContainer container, MyObjectContext entities)
据我所知使用RegisterType
与new InjectionConstructor()
作为参数可确保缺省参数的构造函数被调用(这就是我想要的)。为什么Unity无法按预期解析类型?我错过了什么吗?
问候
周杰伦
我把这个标记为答案,因为它将我引向了解决方案。 Unity似乎有一些问题可以解决,因为我在错误的地方注册了它。我通过了容器,因为我认为我需要它来解决跨项目(shell,模块,基础设施等)的注册实例/类型,但这似乎并不是正确的/工作方式。 – Jay