C# Web API 服务数据不持久

标签 c# api service controller persist

我目前有一个 C# Web API,并且 API Controller 有一个静态服务,因此如果调用添加数据,则稍后可以引用数据。我不希望这个变量是静态的,但每次我进行 API 调用时,如果它不是静态的,包含数据列表的服务就会被重置。我该如何解决这个问题?

最佳答案

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

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

关于C# Web API 服务数据不持久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29463920/

相关文章:

php - Mailchimp addListMember 在已经存在时返回客户端错误 400 错误请求

android - Android 服务自动停止

c# - 如何动态调整文本框的大小为一定数量的字符的宽度?

android - Canvas.drawVertices(...) 什么都不画

c# - 在命令提示符下编译/执行 C# 源文件

python - 如何在 python 中过滤 .json 数组,以便每个元素中仅显示一个参数?

android - 通过绑定(bind)保持前台服务活跃

android - 在服务和 Activity 之间共享数据的最有效方式

c# - 在 Action 上使用局部函数作为输入参数

c# - 使用 EnvDTE 自动化 Visual Studio