我正在尝试将 XML 序列化添加到 C# 中一个相当简单的类结构中。本质上,有一个根类的单个实例(称为 AClass),它包含一些其他类的几个实例的列表(称为另一个类):
[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 递归序列化声明为内部的对象列表?