Данные службы веб-API C # не сохраняются

1

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

Теги:
controller
service

1 ответ

1
Лучший ответ

Контроллер Webapi создается по каждому запросу (см. Веб-интерфейс ASP.net: почему контроллеры созданы для каждого запроса?), Поэтому это означает, что любые переменные, которые создаются в конструкторе контроллера webapi, будут воссозданы по каждому запросу. Статический сервис по-прежнему сохраняет свою ценность между запросами, поскольку его срок службы не контролируется контроллером webapi.

Чтобы иметь нестатический сервис, вам придется ввести еще один способ контролировать срок службы службы. Посмотрите на инъекцию зависимостей http://www.asp.net/mvc/overview/older-versions/hands-on-labs/aspnet-mvc-4-dependency-injection, чтобы лучше понять, как это сделать. Самый простой способ обойти вашу проблему - использовать контейнер IoC, такой как http://www.ninject.org/.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню