3

我跟着this教程在WebAPI中使用Unity依賴注入。無法重用'ApiController'實例 - Unity DI

爲了避免註冊每種類型seperatly我用這個設置

_container.RegisterTypes(
      AllClasses.FromLoadedAssemblies(), 
      WithMappings.FromMatchingInterface, 
      WithName.Default, 
      WithLifetime.ContainerControlled); 

這非常適用於第一次,但由於第二個我得到

「不能重用‘ApiController’實例。必須根據傳入消息構造'ApiController'。檢查您的自定義'IHttpControllerActivator'並確保它不會製造相同的實例。「

我該如何重新使用這個?

回答

4

當你說WithLifetime.ContainerControlled時,它意味着你要求Unity註冊一個Singleton實例(即重用實例),這就是它的抱怨。 您需要設置PerRequest終身管理器

+0

更改爲'WithLifetime.PerResolve'完成了這個訣竅。謝謝 –