Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencySymbol = "$";
decimal value = 500;
Trace.TraceInformation("{0:C}", value);
Trace.TraceInformation(string.Format("{0:C}", value));
производит следующий вывод:
Information: 0 : ¤500.00
Information: 0 : 500,00$
Это означает, что он либо выполняет форматирование в другом потоке, либо игнорирует Thread.CurrentThread.CurrentCulture
(возможно, заменяя его на инвариантный).ЗАЧЕМ?? MSDN хранит молчание .