Уже несколько дней я ищу ответ на свою проблему и схожу с рельсов. Поэтому я задаю свой вопрос здесь, может быть, у кого-то возникнет идея.
Я создал веб-сервис WCF многими способами. Я хотел бы сохранить некоторые данные в объекте на веб-сервисе во время вызова первого метода и повторно использовать их, когда клиент вызывает второй метод.
Например:
public class Toto : IToto
{
private List<Hardware> hwList = new List<Hardware>();
public void addHardware(Hardware hw) {
hwList.Add(hw);
}
public void getHardwareList(out List<Hardware> list)
{
list = hwList;
}
}
Я бы хотел, чтобы при вызове метода addHardware список сохранял в памяти все объекты оборудования, которые я в него поместил. Затем, когда я вызываю getHardwareList, получаю все объекты Hardward, ранее помещенные в список.
Проблема в том, что после каждого вызова мой список повторно инициализируется и остается пустым.
Я нашел много информации о PerSession в InstanceContextMode, но она не работает. Когда я заставляю ServiceContract быть SessionMode.Required, возникает много проблем с basicHttpBinding. Я пытался изменить его на wsHttpbinding, но безуспешно.
Мой последний вопрос: возможно ли сохранить экземпляр моего списка без сохранения его состояния в базе данных и без сериализации в запросе / ответе XML.
Неважно, есть ли у каждого экземпляра веб-сервиса, созданного на клиенте, свой список, потому что это то, что я хочу. Таким образом, первый экземпляр веб-службы будет иметь свой экземпляр списка, а второй экземпляр будет иметь другой экземпляр списка.
Кто-нибудь может мне помочь?
Большое спасибо!