Я хотел бы знать, есть ли какой-нибудь простой способ десериализации десятичной дроби с разделителем запятых с помощью XmlSerialier?Я получаю экспортированные данные в формате xml из другого программного обеспечения, и все числа (цена, количество, скидка и многое другое) в файле xml имеют запятую в качестве десятичного разделителя.
Вот упрощенный пример, который я пыталсяdo:
Допустим, есть класс продукта с именем и ценой:
[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).
Все работает нормально, когдаЦена в xml составляет 3.50.
Я знаю, что могу изменить свойства цены на sting и TryParse decimal, но, возможно, есть лучшее решение (например, культура переключения)?
Любые предложения, решения и комментарииприветствуются.
ОБНОВЛЕНИЕ: Забыл упомянуть, что мои текущие настройки культуры уже используют запятую в качестве десятичного знака.