2
我想知道是否有任何簡單的方法使用XmlSerialier以逗號小數點分隔符來反序列化十進制數? 我從其他軟件獲取xml格式的導出數據,xml文件中的所有數字(價格,數量,折扣和許多更多)都以逗號作爲小數點分隔符。XmlSerializer用逗號(,)反序列化十進制小數點符號
下面是簡單的例子就是我試圖做:
比方說,有產品類名稱和價格:
[Serializable]
public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
}
,我有XML ...
string xmlExample = "<Product><Name>Coca Cola, 2L</Name><Price>3,50</Price></Product>";
當我試圖反序列化該XML ...
XmlSerializer serializer = new XmlSerializer(typeof(Product));
StringReader stringReader = new StringReader(xmlExample);
Product product = serializer.Deserialize(stringReader) as Product; //<-- Error here
我遇到錯誤XML文檔中存在錯誤(1,57)。
當Price in xml是3.50時Everythig可以正常工作。
我知道我可以將價格特性更改爲sting和TryParse十進制,但也許有更好的解決方案(例如切換文化)?
任何建議,解決方案和意見表示讚賞。
更新: 忘了提及我目前的文化設置已經使用逗號作爲小數點符號。
是我知道xml standarts說dot是十進制符號,但事實是,我得到了基於xml文件的非standarts。因此,我正在尋找解決方法...感謝鏈接,我會檢查它。 – Reniuz 2011-05-24 20:36:27