クラスをからに変更した後、クラスをxmlにxmlシリアル化しようとすると、問題が発生しましpublic
たinternal
。保護レベルを変更する前は問題なく機能していたので、一般公開のみの制限を回避する方法を探しています。
内部に配置したい理由は、クラスをライブラリに移動したため、ライブラリの外部では役に立たないためです。
クラスレイアウトの簡単な例:
[Serializable]
internal class InternalSerializable
{
[XmlAttribute]
public int Foo = 5;
public InternalSerializable()
{
}
}
通常XmlSerializer
は自動的に生成され、ランダムなアセンブリ名が付けられているため、を使用sgen.exe
してXmlSerializerを事前生成し、次を使用して参照してみました。
[assembly: InternalsVisibleTo("FileFormats.XmlSerializers")]
ただし、スイッチを使用してsgenを実行/verbose
すると、パブリックタイプのみを処理できると表示されます。
だから私は誰かがsgenをだまして内部型を処理する方法や内部クラスをシリアル化する方法を知っているのだろうかと思っていましたか?
編集:私はこの問題でかなりの数のクラスを取得したので、全体を書き直したくない