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