如何在Web API中的多个控制器之间共享长期存在的资源?

时间:2014-01-13 06:50:47

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

我有一个WebAPI控制器类(继承自ApiController)。

需要读取磁盘上存在的数据。我不想为每个请求从磁盘加载。

所以我想找到一些方法将依赖注入控制器。

我应该创建一个实现IDependencyResolver的自定义依赖项解析器吗?

我的依赖类需要采取哪些线程安全措施?

1 个答案:

答案 0 :(得分:1)

您可以使用ninject将依赖项注入所需的任何控制器。

要为web api使用依赖注入,您需要一个名为“WebApiContrib.IoC.Ninject”的ninject的其他nuget包。

Ninject在App_Start文件夹中创建一个文件calle“NinjectWebCommon.cs”,您可以在其中配置依赖项。

private static void RegisterServices(IKernel kernel)
{
    kernel.Bind<ILogLivedResource>().To<LongLiveResourceInstance>().InRequestScope();;
}

您可以找到更多信息here

此致 秘书科