我有一些课程不能对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来解决这个问题。关于这个的任何提示?
答案 0 :(得分:1)
不,但你可以轻松推出自己的ConertInvariant.ToDecimal(...)
包装器。
答案 1 :(得分:1)
您可以使用Convert.ToDecimal Method (Object, IFormatProvider)
并传递特定于文化的提供商