2
我正在註冊像這樣的依賴關係的負載。iisreset後統一註冊失敗
container.RegisterTypes(AllClasses.FromLoadedAssemblies(),
WithMappings.FromMatchingInterface,
WithName.Default,
overwriteExistingMappings: true);
這注冊的事情很好,web api端點已正確配置。 如果我做iisreset
或只是等待一下,然後事情會失敗,
的錯誤信息是不是非常有幫助
"exceptionMessage": "An error occurred when trying to create a controller of type 'ApiController'. Make sure that the controller has a parameterless public constructor.",
這當然控制器不和不應該有。
我不知道是怎麼回事......但如果我註冊的依賴性明確
container.RegisterType<IDoAThing, Domain.Things.DoAThing>(new HierarchicalLifetimeManager());
然後,它所有的作品。
如何獲得'按照約定'註冊以繼續工作?
也許程序集還沒有在Unity註冊開始時被iisreset加載到應用程序域中。嘗試使用['BuildManager.GetReferencedAssemblies']獲取引用的程序集(https://msdn.microsoft.com/en-us/library /system.web.compilation.buildmanager.getreferencedassemblies.aspx)方法來獲取bin文件夾中的程序集列表並將此集合傳遞給AllClasses.FromA ssemblies幫助者方法。最糟糕的情況是,您可以使用每個組件中的知名類,然後在這些程序集中註冊類。 –
看到一個類似的問題,其中程序集尚未加載到應用程序域[例如這裏](http://stackoverflow.com/questions/3552223/asp-net-appdomain-currentdomain-getassemblies-assemblies-missing-after-應用程序) –
我還沒有得到它的工作,但這看起來很可能。如果你讓它成爲答案,我會upvote你甜甜的互聯網點! – Loofer