2013-05-06 1 views
1

Мне нужно установить CultureInfo для службы Windows, написанной на C# 4.0. Проблема в локали ОС - она ​​отличается от культуры моего сервиса.Установить CultureInfo для новых потоков из .NET Windows Service

Поскольку я использую .NET 4.0.NET 4.5 Я могу изменить культуру по умолчанию для всех новых потоков), на мой вопрос:

Как я могу справиться с созданием всех новых потоков в моей службе Windows и установить для них CultureInfo?

+1

http://stackoverflow.com/questions/4894405/localize-windows-service может помочь – noobob

+0

@noobob, в вашей ссылке, topicstarter спрашивает «как добавить ресурсы глобализации в мое приложение». У меня уже есть ресурсы в моем приложении, но я не могу установить CultureInfo. Это вызывает неправильный выбор ресурсов. – lewis

+0

@noobob, я забыл добавить ресурсы локализации в свой Wii-генерируемый msi. Thnx за помощь! – lewis

ответ

1

Служба Windows не означает программу с несколькими потоками. Таким образом, вы должны создать поток в своем коде, или ваша служба - это служба WCF. Если вы создаете поток самостоятельно, просто установите культуру нового потока после создания. Если это услуга WCF, см. http://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.idispatchmessageinspector.aspx. Вам необходимо реализовать интерфейс IDispatchMessageInspector, и если будет новый запрос от клиента (может быть создан новый поток), будет вызван метод AfterReceiveRequest, вы можете установить CultureInfo в этот метод. Если ваша служба Windows не является сервисом WCF, пожалуйста, отобразите дополнительную информацию об этом.

+0

Служба Windows имеет более 1 потока. Даже я установлен _Thread.CurrentThread.CurrentUICulture_ на метод «Главная» службы, мой код бизнес-логики выполняется в другом потоке с разными _CultureInfo_. – lewis

 Смежные вопросы

  • Нет связанных вопросов^_^