Bonjour à tous,
J'ai créé un service windows qui effectue de la copie de fichiers et qui presente un log des différents evenements (demarrage service, arret, copie ect...).
Je copie dans le log file avec ceci:
Ca fonctionne nickel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public static void WriteErrorLog(string Message) { StreamWriter sw = null; try { sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "\\Logfile.txt", true); sw.Write(DateTime.Now.ToString() + " > " + Message + "\r\n"); sw.Flush(); sw.Close(); } catch { } }
J'ai donc cherché à localiser ce log en fonction de la culture du PC sur lequel le service est installé. j'utilise cette fonction pour determiner la culture:
et pour ecrire mon log, un truc du genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 private void VerifLanguage() { culture = CultureInfo.CurrentCulture; Library.WriteErrorLog(culture.ToString()); Assembly a = Assembly.Load("MoveFiles"); rm = new ResourceManager("MoveFiles.Resources.Resource", a); if (culture.Name != "fr-FR") { System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo("fr-FR"); ci = System.Threading.Thread.CurrentThread.CurrentUICulture; } else { System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo("en-US"); ci = System.Threading.Thread.CurrentThread.CurrentUICulture; } }
J'ai bien sur deux fichiers de ressources:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Library.WriteErrorLog(rm.GetString("StartServiceInfo", ci));
Resource.resx
Resource.en-US.resx
Le problème est que quelque soit la culture du PC, c'est toujours le fichier Resource.resx (Français) qui est utilisé....
Qu'est-ce que je fais de mal?
merci
Partager