У меня возникли проблемы при попытке сериализации 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 в обработке внутренних типов или иным образом сериализовать внутренние классы?
Редактировать: У меня довольно много классов с этой проблемой, поэтому я предпочел бы не переписывать все это