我一直在寻找可以帮助我解决当前在使用 WPF 和 Silverlight 的 MVVM Prism 设置中的文化问题的东西。
我们的设置要求我们有一个使用 en-gb 文化和 us-english 数据库语言设置的中央服务器,Silverlight 系统使用它没有问题,因为我们通过向服务传递用户 CultureInformation 来处理文化差异调用允许我们使用 double.parse(value, userCulture) 处理 XML 中的值,这也允许我们将值传回。我们还支持具有自己的本地数据库的软件的离线版本,该数据库与在线版本共享数据子集,这是使用软件内部更新功能进行更新的。
如果我从我的数据库中检索 XML 数据,则它采用以下示例格式
<code>
<Pipe>
<RowNumber>1</RowNumber>
<Standard>Schedule</Standard>
<Size>125</Size>
<DN>DN125</DN>
<TransDN>DN125</TransDN>
<Inches>5"</Inches>
<Designation>40</Designation>
<IntDia>128.20</IntDia>
<OutDia>141.30</OutDia>
<Wall>6.5500</Wall>
<Area>1.290820730000000e002</Area>
</Pipe>
</code>
这会导致以下两种情况出现问题:如果用户在本地运行软件,他们将直接访问 dll,并可能尝试使用机器本地文化设置解析上述数值。以西班牙为例,这将反转数字字段中,
和.
值的使用。这导致 IntDia 值返回为 12820,00。
每次我想检索 XML 数据时,我都可以指定详细信息,但是我想知道是否有更简洁的方法来处理这种情况,以便我们可以以正确的文化返回 xml 数据。