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'完成了这个诀窍。谢谢 –