일부 XML을 비 직렬화하는 데 문제가 있습니다. 제 3자가 제공 한 XML은 매우 장황합니다. 따라서 특정 요소에 대한 값이 설정되어 있지 않으면 빈 요소 (예 : <element1 />
)가 제공됩니다.XML 데코 레이션을 사용하여 직렬화 해제시 기본값 지정
이것은 정수를 저장하는 요소와 같은 특정 요소에 대한 문제입니다. 제 3자를 제어 할 수 있으므로 기본값 (<myinteger>0</myinteger>
)을 지정하거나이 요소를 완전히 생략 할 수 있습니다. 이 두 가지 모두 문제를 피해야합니다.
그러나 나중에 제어 할 권한이없는 상황이있을 수 있습니다.이 경우 장식을 통해 기본값을 지정하는 방법이 있습니까?
[XmlElement("myinteger")=0???]
public int MyInteger
{
get
{
return myInteger;
}
set
{
myInteger= value;
}
}
음 ... 간단히 말해서 제 3자가 설명의 빈 요소를 생략하는 것이 가장 쉬운 해결책 인 것 같습니다. 나는 그 선택의 사치가없는 곳에서 내가 할 수있는 것이 궁금했다. 나는 문자열 옵션을 고려해 보았습니다. 그러나 그것은 단지 웜의 큰 깡통 일뿐입니다 ... – CJM
역 직렬화 중에 적어도 하나의 중요한 효과가 있습니다. 요소가 비어 있고 DefaultValue가 없으면 구문 분석 오류가있을 수 있습니다. 그러나 그것과 함께 [generated code] (http://msdn.microsoft.com/en-us/library/aa302290.aspx)는 빈 요소를 건너 뜁니다. –