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