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