我已經繼承了一個現有的使用Unity DI容器的ASP.Net MVC項目。所有註冊都在web.config中定義。Unity容器試圖解決非註冊類型,拋出錯誤
當一個新的服務/類引入到項目中時,我將它與一個接口一起創建,然後更新配置文件以處理註冊。例如:
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<assembly name="UnityDi.Contracts" />
<assembly name="UnityDi.Domain" />
<assembly name="UnityDi.Services" />
<assembly name="UnityDi.Repositories" />
<namespace name="UnityDi.Contracts" />
<namespace name="UnityDi.Domain" />
<namespace name="UnityDi.Services" />
<namespace name="UnityDi.Repositories" />
<container>
<register type="Foo.Worker.Interfaces.IIndividualWorker, Foo.Worker" mapTo="Foo.Worker.Workers.IndividualWorker, Foo.Worker"></register>
</container>
</unity>
當IIndividualWorker類或控制器是必需的,我與相關性屬性添加:
[Dependency]
public IIndividualWorker IndividualWorker { get; set; }
到目前爲止,這工作得很好.....
我現在遇到了一個問題,我不明白,我承認我的Unity知識並不是最深的。
我創建了一個新的MVC Web應用程序,它將使用與第一個應用程序相同的後端分層,如上所示。我以同樣的方式配置了Web.Config,並且所有的參考都已經到位。我得到的問題是,新的Web應用程序利用ASP.Net Identity作爲其安全機制(以前的應用程序具有簡單成員資格)。
在註冊新用戶,使用標準的ASP.Net MVC認證模板,我得到的錯誤「當前類型,Microsoft.AspNet.Identity.IUserStore`1 [Foo.Web2.Models.ApplicationUser],是一個接口,無法構造。是否缺少類型映射?「
看來,統一是試圖處理ApplicationUserManager類
public ApplicationUserManager(IUserStore<ApplicationUser> store)
是否有辦法解決的參數?我可以讓Unity離開這個(大概是其他模板化代碼)嗎,只是試圖解決我在.Config中定義的那些?
感謝,