У меня есть XML-документ, предоставленный клиентскими приложениями для моего приложения С#. Именно так клиент отправляет XML файл:
<?xml version="1.0" encoding="utf-8"?>
<SomeAccount>
<parentId>2380983</parentId>
<!-- more elements -->
</SomeAccount>
И класс С#, который поддерживает десериализацию XML:
[XmlRoot]
public class SomeAccount
{
[XmlElement("parentId")]
public long ParentId { get; set; }
//rest of fields...
}
Но есть некоторые клиенты, чья система отправляет XML таким образом (обратите внимание на верхний регистр в LeParentId
):
<?xml version="1.0" encoding="utf-8"?>
<SomeAccount>
<LeParentId>2380983</LeParentId>
<!-- similar for the other elements -->
</SomeAccount>
Как я могу создать это поле (и другие) для поддержки имен XML parentId
и LeParentId
?
Это метод, который я использую для десериализации XML:
public sealed class XmlSerializationUtil
{
public static T Deserialize<T>(string xml)
{
if (xml == null)
return default(T);
XmlSerializer serializer = new XmlSerializer(typeof(T));
StringReader stringReader = new StringReader(xml);
return (T)serializer.Deserialize(stringReader);
}
}
Я попытался добавить [XmlElement]
дважды в поле, по одному на имя элемента, но это не сработало.