2011-01-27 6 views
0

개인 구조체를 포함하는 공용 클래스가 있습니다. 구조체에는 serialize하려는 속성 (주로 문자열)이 들어 있습니다. 구조체를 serialize하고 XmlSerializer를 사용하여 디스크로 스트림하려고하면 공용 형식 만 serialize 할 수 있다는 오류가 발생합니다. 나는이 구조체를 공개 할 필요가 없으며 원하지 않는다. 그것을 직렬화하고 비공개로 유지할 수있는 방법이 있습니까?개인 구조체 직렬화 - 할 수 있습니까?

답변

1

IXmlSerializable을 구현하면 데이터가 어떻게 그리고 어떻게 직렬화되는지 정확히 제어 할 수 있어야한다고 생각합니다. 제공된 링크의 예제를 보면 비공개 문자열이 직렬화됩니다.

+0

감사합니다. 나는이 일을 할 수 있다고 생각하지만, 그것은 IMO가되어야하는 것보다 훨씬 어려운 일이다. –

+0

@Randy 나는 다른 방법이 있다고 생각하지 않는다. 나는 과거에이 문제에 뛰어 들어 그 일로 인해 매우 좌절감에 빠졌습니다. XML serializer를 사용하면 IXmlSerializable 인터페이스를 구현하지 않는 한 public 데이터 멤버 만 serialize합니다 (이전에 나에게 가져온 ISerializable이 아니기 때문에 개인 데이터를 복구 할 수 없었습니다). – pstrjds

+0

오류는 public * types *만이 가능하다는 것입니다 공개 * 멤버가 아닌 직렬화되어야한다. 그냥 이것을 지적하십시오. – Amy

관련 문제