Есть ли способ заставить XmlSerializer
сериализовать примитивные члены класса (например, строковые свойства) как атрибуты XML, а не как элементы XML, без необходимости писать [XmlAttribute]
перед каждым объявлением свойства ?
То есть существует ли глобальный переключатель, который указывает XmlSerializer
сериализовать все примитивные члены класса как атрибуты XML?
Предположим, что у нас есть следующий класс:
public class Person
{
public string FirstName
{
...
}
public string LastName
{
...
}
}
Затем XmlSerializer
генерирует этот код по умолчанию:
<Person>
<FirstName>John</FirstName>
<LastName>Doe</LastName>
</Person>
Однако мне нужен следующий код:
<Person FirstName="John" LastName="Doe"/>
Еще раз: я хочу сделать это без [XmlAttribute]
(или без XmlAttributeOverrides
, что было бы еще больше работы).
Одним из возможных решений было бы использование универсального шага постобработки, который применяет XSLT-преобразование для преобразования элементов в атрибуты. Но мне интересно, есть ли более простое решение.