C#Web API服务数据不会持久化

时间:2015-04-06 00:43:20

标签: c# api service controller persist

我目前有一个C#web API,api控制器有一个STATIC服务,所以如果调用添加数据,以后可以引用数据。我不希望这个变量是静态的,但每次我进行API调用时,如果它不是静态的,那么包含数据列表的服务将被重置。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

在每个请求上创建一个Webapi控制器(请参阅ASP.net Web API: Why are controllers created per request?),这意味着将在每个请求上重新创建在webapi控制器构造函数中实例化的任何变量。静态服务仍将在请求之间保留其值,因为其生命周期不受webapi控制器的控制。

要拥有非静态服务,您必须引入另一种方法来控制服务的生命周期。查看依赖注入http://www.asp.net/mvc/overview/older-versions/hands-on-labs/aspnet-mvc-4-dependency-injection以更好地了解如何执行此操作。解决问题的最简单方法是使用IoC容器,例如http://www.ninject.org/