Где устанавливается культура по умолчанию a.NET применение
Я пишу приложение WPF и испытываю некоторые трудности с культурами.
Я хотел бы знать, где приложения .NET выбирают значение для CurrentThread.CurrentCulture, когда значение явно не задано. Это не из информации о культуре Windows, потому что я изменил это с en-US на en-GB, не заметив никаких изменений в приложении при запуске.
пожалуйста, помогите!
Марк
2 ответов
С документацию:
посмотреть
CultureInfo.CurrentCulture
свойство, чтобы узнать, как определяется культура потока по умолчанию и как пользователи устанавливают информацию о культуре для своих компьютеров.
один трудоемкий щелчок позже...
как определяется культура нити
при запуске потока его культура изначально определяется следующим образом:
путем извлечения культуры, указанной в
DefaultThreadCurrentCulture
свойство в домене приложения, в котором выполняется поток, если значение свойства неnull
.вызывая Windows .
обратите внимание, что если вы задаете определенную культуру, отличную от установленной системой культуры или предпочтительной культуры пользователя, и ваше приложение запускает несколько потоков, текущий культура этих потоков будет культурой, возвращаемой
GetUserDefaultLocaleName
функция, если вы не назначаете культуруDefaultThreadCurrentCulture
собственность в домене приложения, в котором выполняется поток.дополнительные сведения о том, как определяется культура потока, см. В разделе "Культура и потоки" в
CultureInfo
темы.
я не бюджет для другого щелчка, но нажал в любом случае.
Культура и Нити
при запуске нового потока приложения его текущая культура и текущая культура пользовательского интерфейса определяются текущей культурой системы, а не текущей культурой потока. Следующий пример иллюстрирует разницу. Он устанавливает текущую культуру и текущую культуру пользовательского интерфейса потока приложения для французской (Франция) культуры (fr-FR). Если текущая культура уже fr-FR, пример устанавливает ее в английскую (Соединенные Штаты) культуру (en-US). Он отображает три случайных числа как значения валюты, а затем создает новый поток, который, в свою очередь, отображает еще три случайных числа как значения валюты. Но, как показывает вывод из примера, значения валюты, отображаемые новым потоком, не отражают соглашения о форматировании французской (France) культуры, в отличие от вывода из основного потока приложения.
обратите внимание, что он говорит когда новый поток приложений начинается. Итак, учитывая, что ты скажи:
это не из информации о культуре Windows, потому что я изменил это с en-US на en-GB, не заметив никаких изменений в приложении при запуске.
возможно, вы захотите просмотреть ответ.
когда конкретный язык не указан или когда вместо имени языка используется пустая строка,InvariantCulture
использовать.
он связан с английским языком, но не с какой-либо страной/регионом.