Как сохранить значение переменной на протяжении всего запроса - PullRequest
0 голосов
/ 15 апреля 2011

Я создаю службу REST, где я буду ожидать, что определенный «билет» будет передаваться при каждом запросе. Таким образом, мне не нужно создавать сессии (а мои клиенты не могут их поддерживать).

Я хочу хранить этот билет где-нибудь до завершения запроса. Я буду вызывать методы, а они будут вызывать другие методы, соединения и т. Д. Я просто хочу, чтобы эти данные были доступны из кода в любом месте этого запроса.

Я знаю, что статический класс / переменная не будет работать, поскольку он распространяется на все приложения.

Какой у меня выбор?

EDIT: По сути, я хочу какую-то «сумку» для хранения, которую я могу заполнить в своем методе веб-сервиса и которая будет доступна из любого места в приложении. И это нужно жить только для длины этого запроса.

Ответы [ 2 ]

0 голосов
/ 15 апреля 2011

То, что вы спрашиваете, обычно плохая практика. Если вам нужны какие-либо данные в каком-либо методе, вы должны получить их либо как параметр, либо как данные экземпляра (объект, где вы вызываете метод).

В любом случае, если вы пишете службу REST, вы наиболее вероятно используете режим совместимости с AspNet. В таком случае у вас должен быть доступ к HttpContext.Current.Items. Если вы не используете режим AspNetCompatibility, вы можете создать собственное расширение для OperationContext .

0 голосов
/ 15 апреля 2011

Использовать базу данных в качестве хранилища 'bag'.

Подойдет любой другой тип глобального места для хранения данных (файл?), Но следует помнить о блокировке, когда несколько потоков пытаются одновременно получить доступ к этому ресурсу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...