Я изучаю веб-службы RESTful, размещенные с помощью консольного приложения, для решения конкретного варианта использования (ASP.NET переполняет наши текущие потребности), и я немного смущен.
Во-первых, я создал веб- сервис WCF, следуя этим указаниям MSDN. Это хорошо работает, я могу выдавать запросы GET и POST и получать ответ.
Глядя на распространение этого примера на наш прецедент, мне нужно сохранить данные POST в коллекцию:
поэтому я изменил исходный почтовый индекс:
public string EchoWithPost(string s)
{
return "You said " + s;
}
в
public List<string> Bc = new List<string>();
public string EchoWithPost(string s)
{
this.Bc.Add(s);
return "You said " + s;
}
Ожидая, что мой список будет расти с каждым новым запросом POST. Однако это не так. Наблюдая за отладчиком, я определил, что каждый новый запрос POST создавал новый список, из-за чего старый список выпадает из области видимости и теряется.
Почему это?
Ваша служба WCF создается как новый экземпляр с каждым запросом, который он обрабатывает. В зависимости от ваших потребностей вы можете делать несколько действий.
Я подозреваю, что третий вариант наиболее подходит для ваших нужд.
Потому что новый экземпляр вашего сервиса создается каждый раз, когда вы выполняете новый вызов.
Вы должны использовать статический список или использовать другой тип сохранения.
public static List<string> Bc = new List<string>();
public string EchoWithPost(string s)
{
this.Bc.Add(s);
return "You said " + s;
}