2011-05-09 4 views
0

클래스를 serialize 할 때 XmlIgnore 특성에 주석이 있으면 오류가 발생합니다. XmlIgnore 특성의 주석을 제거하면 올바르게 작동합니다. 누구나 속성을 직렬화 할 수없는 이유를 말해 줄 수 있습니까?XmlIgnore의 XML 직렬화 관련 문제

+1

팁 : 오류에 대해 이야기 할 때마다 *** 오류 세부 정보를 포함하십시오. *** –

답변

1

일반적으로 예외에서 매우 명확하게 이유를 알려줍니다 - 특히 InnerException을 살펴보십시오. 그러나 요약 :

을 사용자 정의 형 SomeType를 들어

  • (중 즉 public SomeType MemberName {get;set;}, 루트 개체 또는 속성을 통해)이 있어야합니다 XmlSerializer를 통해 직렬화로 public
  • 그것은이 있어야합니다 그것은 01로 예상 (데이터를 노출 할 수 있어야합니다
  • 몇 가지 일반적인 조합이 지원되지 않을 수 있습니다
  • 공공 매개 변수가없는 생성자 예를 들어,은 no-go입니다. SomeType의 아형 유형 있도록 일반적
  • 는) abstract 비 (구체적으로는, 콘크리트 [XmlInclude(...)]

[XmlIgnore] 사용 통해 정의 구현 고려로부터 형을 제거 있어야) [XmlInclude(...)] 통해 미리 광고되어야한다는 xml-friendly가 피할 수있다이다. 이러한 경우 IXmlSerializable을 시도해 볼 수도 있습니다.