无法重复使用' ApiController'实例 - Unity DI

时间:2017-03-06 15:27:50

标签: c# asp.net-web-api dependency-injection asp.net-web-api2 unity-container

我遵循this教程在WebAPI中使用Unity依赖注入。

为避免单独注册每种类型,我使用了此设置

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

这是第一次运作良好但是从第二次开始

  

"无法重复使用' ApiController'实例。 ' ApiController'必须根据传入的消息构建。检查您的自定义' IHttpControllerActivator'并确保它不会制造相同的实例。"

我如何重新开始?

1 个答案:

答案 0 :(得分:4)

当你说WithLifetime.ContainerControlled时,它的外观就意味着你要求Unity注册一个Singleton实例(即重用实例),这就是它的抱怨。 您需要设置PerRequest终身经理