Sarà capitato a tutti di viaggiare ed incontrare nuove culture.
"Sono sempre stato abituato a girare in luoghi in cui mi capiscono, sanno cos'è un euro e sanno che se dico 1000 è come dire 1.000 e non 1,000.
Non mi è mai capitato, però, che sbagliassero a capire un NO.
O forse dovrei dire un false, o ancora...uno 0.
Però evidentemente può capitare. Essere dei buoni diplomatici significa anche questo: provare a mettersi nei panni degli altri per capire cosa penseremmo di noi al loro posto.
Non si parla quindi di imporre la propria semantica, ma avere la sicurezza che venga capito quello che si dice."
Questo è quello che ha detto ieri un mio thread di ritorno da un Windows 2003 Server che non si è ritrovato a proprio agio in un ambiente con un'altra CultureInfo.
Questa la riga di codice incriminata:
spsAttach = CType(objElementEmail.SelectSingleNode(".//e:hasattachment", objNS).InnerText, Boolean)
Il tag hasattachment contiene normalmente un numero 0 o 1 (boolean), ma essendo un file xml arriva in formato string.
Quindi veniva sollevata un'eccezione di tipo ArgumentException:
The currency separator information specified in the NumberFormatInfo is ambiguous for parsing
La cosa è un po' bizzarra, ma ho trovato delle "spiegazioni" qui.
Quindi ho risolto nello stesso modo:
Dim myCI As New System.Globalization.CultureInfo("en-US", False)
myCI.NumberFormat.NumberGroupSeparator = ","
myCI.NumberFormat.NumberDecimalSeparator = "."
System.Threading.Thread.CurrentThread.CurrentCultu re = myCI
Ora il tutto funziona, il mio thread è felice di poter comunicare facendosi capire.
Imposizione di cultura? No...diplomazia :)