WCF - StructureMap - Кэширование объектов только на время запроса - PullRequest
2 голосов
/ 24 марта 2010

Итак, у меня уже есть рабочая реализация StructureMap со службой WCF (включая настраиваемого поставщика экземпляров, поведения и т. Д.)

Когда я пытаюсь создать объект, который создается только один раз за пользовательский запрос, я использую InstanceScope.HttpContext, и он выбрасывает, поскольку контекст null.

У кого-нибудь есть правильный способ сделать это?

1 Ответ

2 голосов
/ 24 марта 2010

На стороне сервера службы WCF? По умолчанию WCF не имеет ничего общего с ASP.NET, поэтому все ваши HttpContext и т. Д. Отсутствуют.

По умолчанию ваши WCF-сервисы будут вызываться по принципу «per-call», например каждый запрос получает совершенно новый, отдельный, полностью изолированный экземпляр вашего класса обслуживания. Почему бы просто не поместить эти вещи в класс обслуживания как внутренние поля ??

Или, возможно, вы захотите прочитать в этом блоге о том, как абстрагировать состояние запроса и предоставить примеры реализации для ASP.NET (используя HttpContext.Items) и WCF.

...