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