In .NET 4.5, you can use the CultureInfo.DefaultThreadCurrentCulture
property to change the culture of an AppDomain.
For versions prior to 4.5 you have to use reflection to manipulate the culture of an AppDomain. There is a private static field on CultureInfo
(m_userDefaultCulture
in .NET 2.0 mscorlib, s_userDefaultCulture
in .NET 4.0 mscorlib) that controls what CurrentCulture
returns if a thread has not set that property on itself.
This does not change the native thread locale and it is probably not a good idea to ship code that changes the culture this way. It may be useful for testing though.