Есть ли способ заставить 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-преобразование для преобразования элементов в атрибуты. Но мне интересно, есть ли более простое решение.