有没有办法确保不使用隐式文化设置?

时间:2011-03-24 12:32:19

标签: c# .net asp.net

我有一些课程不能对de used culture进行假设。这些类应始终使用CultureInfo.InvariantCulture。但是,我无法将线程的当前文化设置为CultureInfo.InvariantCulture,因为其他类依赖于<globalization culture="auto"

有没有办法确保某些类总是使用显式文化方法调用(例如:Convert.ToDecimal(value, CultureInfo.InvariantCulture))而不是假定的文化(例如:Convert.ToDecimal(value))。

也许我的问题不是100%清楚:我想检测所有使用CultureInfo的重载方法,还有没有使用CurrentCulture的CultureInfo的方法。

这包括将数字隐式转换为字符串:

decimal value = 1.0;
string displayThis = string.Format("Costs: {0}", value);

目标是确保某些类/方法不假设CultureInfo。

据说我应该用FxCop来解决这个问题。关于这个的任何提示?

2 个答案:

答案 0 :(得分:1)

不,但你可以轻松推出自己的ConertInvariant.ToDecimal(...)包装器。

答案 1 :(得分:1)

您可以使用Convert.ToDecimal Method (Object, IFormatProvider)并传递特定于文化的提供商