我需要为 Windows 服务设置 CultureInfo,用 C# 4.0 编写。麻烦在于操作系统区域设置 - 它与我的服务文化不同。
因为我使用的是.NET 4.0(在.NET 4.5中,我可能会更改所有新线程的默认区域性),所以我的问题是:
如何在我的 Windows 服务中处理所有新线程的创建,并为它们设置 CultureInfo?
我需要为 Windows 服务设置 CultureInfo,用 C# 4.0 编写。麻烦在于操作系统区域设置 - 它与我的服务文化不同。
因为我使用的是.NET 4.0(在.NET 4.5中,我可能会更改所有新线程的默认区域性),所以我的问题是:
如何在我的 Windows 服务中处理所有新线程的创建,并为它们设置 CultureInfo?
Windows 服务并不意味着多线程程序。因此,您必须在代码中创建线程,否则您的服务就是 WCF 服务。如果您自己创建线程,只需在创建后设置新线程的文化。如果它是 WCF 服务,请参阅http://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.idispatchmessageinspector.aspx。您需要实现 IDispatchMessageInspector 接口,如果有来自客户端的新请求(可能会创建新线程),将调用 AfterReceiveRequest 方法,您可以在此方法中设置 CultureInfo。如果您的 Windows 服务不是 WCF 服务,请显示有关它的更多信息。