Я пытаюсь добавить сериализацию XML в довольно тривиальную структуру классов в C #. По сути, существует единственный экземпляр корневого класса (назовите его AClass), который содержит список нескольких экземпляров какого-либо другого класса (назовите его AnotherClass):
[XmlRoot("RootNode")]
public class AClass {
[XmlElement("ListNode")]
internal List otherObjects { get; set; }
}
public class AnotherClass {
[XmlAttribute("Name")]
internal string name { get; set; }
}
При сериализации я хотел бы, чтобы оба этих класса были сериализованы вместе - то есть, если я сериализую AClass, его список AnotherClass также будет сериализован (см. этот вопрос ).
У меня это в основном работает, но проблема в том, что во время сериализации XmlSerializer, кажется, хочет иметь дело только с public
свойствами класса - он вообще не сериализует AnotherClass, если список объявлен internal
.
Я попытался сделать внутренние компоненты сборки видимыми для сериализатора:
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.Xml")]
Это, похоже, ничего не делает. Есть ли способ заставить XmlSerializer рекурсивно сериализовать списки объектов, которые объявлены внутренними?