2015-04-06 3 views
1

В настоящее время у меня есть веб-API C#, и у контроллера api есть служба STATIC, поэтому, если делается вызов для добавления данных, данные будут доступны позже. Я не хочу, чтобы эта переменная была статичной, но каждый раз, когда я вызываю вызов API, служба, содержащая список данных, сбрасывается, если она не является статичной. Как я могу обойти это?Данные службы веб-API C# не сохраняются

ответ

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/.

Смежные вопросы