Comment puis-je forcer la localisation de la culture à en-US pour une application complète
Je vais avoir un problème avec certains octet conversions et quelques-uns de mes calculs dans une de mes applications. J'ai été en mesure de contribuer à la personne qui exécute avoir la Culture italienne paramètre dans windows. Donc ma question est: Quel est le meilleur moyen pour "en-US" sur n'importe quel ordinateur qui exécute mon application. J'ai un exemple de code ci-dessous, mais je ne suis pas certain si un thread d'I utilisation inhert.
[STAThread]
static void Main()
{
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
...
}
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Le problème que vous décrivez est la raison
InvariantCulture
existe. Plutôt que de changer de votre application, de la culture, vous devriez faire de votre derrière les scènes de manipulation de données et de persistance avec l'invariant de la culture et de laisser ensuite la culture de l'utilisateur de déterminer la façon dont les valeurs sont rendus.Votre code de définir la culture du thread courant, mais tout de nouveaux threads créés n'auront pas cette culture "hérités". Vous devez définir la culture vous avez besoin vous-même. (Je crois que tous les nouveaux threads sera créé avec l'installation de Windows de la culture, mais je suis prêt à être tort sur ce point.)
Cela est répondu dans ce post:
Est-il un moyen de réglage de la culture pour l'ensemble de l'application? Tous les threads en cours et de nouveaux threads?
Personnellement, je trouve ce comportement agaçant, mais c'est la façon dont il est.