Если вы не используете его от инспекторов, тогда это должно быть безопасно, но если вы не используете Remoting или не пересекаете границу AppDomain, тогда, вероятно, проще просто использовать статическое поле потока. Поместите ThreadStaticAttribute в статическое поле, и оно будет отдельным местом хранения в каждом потоке.
Если вы, например, пытаетесь установить значения в IDispatchMessageInspector
, это не сработает, поскольку они будут выполняться в отдельном потоке от запроса. Взгляните на OperationContext , который предоставит специфичную для вызова информацию о запросе WCF. Вы можете добавить к нему расширения, которые могут хранить пользовательские данные, внедрив IExtension<OperationContext>
и добавив их в свойство Extensions. Вот запись в блоге , которая описывает, как добавить пользовательские данные в OperationContext.