public
에서 internal
으로 xml을 변경 한 후 xml을 serialize하려고 할 때 문제가 발생했습니다. 보호 수준을 변경하기 전에 정상적으로 작동 했으므로 공개 제한 사항을 해결할 수있는 방법을 모색 중입니다.xml에 내부 클래스의 serialization
내가 내부에 있기를 원하는 이유는 클래스를 라이브러리로 옮겼고 라이브러리 외부에서 유용하지 않기 때문입니다.
클래스 레이아웃의 간단한 예 :
[Serializable]
internal class InternalSerializable
{
[XmlAttribute]
public int Foo = 5;
public InternalSerializable()
{
}
}
평상시 XmlSerializer
자동으로 생성하고, 임의의 어셈블리 이름을 가지고, 그래서 XmlSerializer를 미리 생성하여이를 참조하는 sgen.exe
을 사용하여 시도된다
[assembly: InternalsVisibleTo("FileFormats.XmlSerializers")]
/verbose
스위치로 sgen을 실행하면 공개 유형 만 처리 할 수 있다고 표시됩니다.
그래서 누군가가 내부 형식을 처리하거나 내부 클래스를 직렬화하는 방법을 sgen을 속일 수 있는지 궁금합니다.
편집 : 나는 모든 것을
[방법 CAN-I-직렬화 - 내부 클래스 - 사용 - XmlSerializer를 (가능 중복 http://stackoverflow.com/ 질문/6156692/how-can-i-serialize-internal-classes-using-xmlserializer) – nawfal