在我将一个类从 xml 更改为 xml 后,我在尝试将其序列化为 xml 时遇到了public
问题internal
。在我更改保护级别之前它工作正常,所以我正在寻找一种方法来绕过仅限公众的限制。
我希望它是内部的原因是我将类移到了一个库中,它在库之外没有用。
一个简单的类布局示例:
[Serializable]
internal class InternalSerializable
{
[XmlAttribute]
public int Foo = 5;
public InternalSerializable()
{
}
}
通常XmlSerializer
是自动生成并具有随机程序集名称,因此我尝试使用sgen.exe
预生成 XmlSerializer 并使用以下方法引用它:
[assembly: InternalsVisibleTo("FileFormats.XmlSerializers")]
但是当使用 switch 运行 sgen 时,/verbose
它说只能处理公共类型。
所以我想知道是否有人知道如何欺骗 sgen 处理内部类型或以其他方式序列化内部类?
编辑:我有很多课都有这个问题,所以我不想重写整个事情