背景:
我遇到组件问题,每次调用特定方法后,都会将当前线程文化更改为“en-US”。进一步在我的过程中导致问题,例如数据访问层不再起作用,因为SqlParameter的CultureInfo也变为“en-US”,因此不能再将一个给定的字符串解析为DateTime SqlValue。
可能的解决方案:
因此,我们的想法是先备份当前文化的线程,然后在调用特定方法后恢复它,这会改变当前的线程文化。在恢复文化时,我会检查文化是否完全改变了。
问题/问题:
我可以将备份的CultureInfo.Name
与Thread.CurrentThread.CurrentCulture.Name
进行比较,但我也可以使用CultureInfo实例的.Equals()
方法。哪个是比较两个CultureInfo实例的更好方法?可能有第三种/更好的解决方案吗?
答案 0 :(得分:12)
您应该使用(因为它比较了CultureInfo实例而重载)
bool result2 = cultureInfo1.Equals(cultureInfo2);
如本博客所示:http://www.toolheaven.net/post/2010/07/02/Beware-when-comparing-CultureInfo-instances.aspx