У меня есть проект веб-службы и проект WPF (который служит клиентом) в моем решении.
Класс, представляющий веб-сервис, довольно прост и выглядит следующим образом:
public class CardsGameService : System.Web.Services.WebService
{
private Card magicCard;
// Acts as a getter for magicCard field
[WebMethod]
public Card GetMagicCard()
{
return magicCard;
}
// Creates some random cards and sets the magicCard field
[WebMethod]
public Card[] GetNewCardSet()
{
Card[] cardSet = new Card[4];
for (int i = 0; i < 4; i++)
{
cardSet[i] = GetRandomCard();
}
Random random = new Random();
int index = random.Next(0, 3);
// This field does get its value and
// is not null when this method is executed
magicCard = cardSet[index];
return cardSet;
}
}
В моем клиентском классе кода для WPF я создаю экземпляр CardsGameServiceSoapClient service
и вызываю GetNewCardSet()
веб-метод, который возвращает набор карт.
Вот проблема:
Если я хочу позже вызвать веб-метод GetMagicCard()
, он всегда возвращает null
. Почему? Я создаю экземпляр CardsGameServiceSoapClient service
только один раз, и этот объект жив до тех пор, пока я запускаю свое клиентское приложение.