2013-08-26 3 views
1

C#을 사용하여 문자열을 역 직렬화 할 수 있습니다. "진정한 \"\ 전무 = 나는 부울 속성 널 (NULL)을 만들어 사용 가능한을 처리하기 위해 관리하고있어하면서 XML 문자열은nullable 특성으로 부울 값을 직렬화 해제 하시겠습니까?

"<Authentication xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"> 
    <Status>Success</Status> 
    <Available i:nil=\"true\"/> 
</Authentication>" 

처럼 보인다, 난 그냥 내가 처리하는 올바른 방법은 무엇인가 궁금하네요?

속성 만들기 이외의 다른 작업을해야합니까?

bool 속성을 nullable로 설정하지 않으면 문자열이 "bool"로 변환 될 수 없다는 오류가 발생하므로 nullable은 내 문제를 정렬하지만 내 일을 처리해야하는지 여부는 궁금합니다. 이 nullable을 허용하는 것 이상의 것

감사합니다.

+0

귀하의 속성이 null 가능할 것으로 생각됩니다. XML 스키마는 속성이'true','false', _or_' null' 일 수 있다는 것을 거의 명시하고 있습니다. IIRC, 이것은 비 직렬화 될 것입니다. 그러나 직렬화하려고하면 동일한 XML을 얻을 수 없습니다. 다시 확인해야하지만, 클래스 속성을'[XmlElementAttribute (IsNullable = true)]로 장식하면 'null :'이있을 때'i : nil = "true"'속성을 출력하도록해야합니다. '가치. 편집 : Nevermind, 방금 테스트를했는데, 당신은 요소 IsNullable 정의 될 필요가 없습니다. 너는 잘 가야한다. –

답변

0

귀하의 재산 이어야합니다. XML은 속성이 true, false 또는 null 일 수 있음을 명시 적으로 알려줍니다. 3은 유효한 값이고 수업은 모두 3을 지원해야합니다.

속성을 만드는 것 이외의 다른 것을 할 필요가 없습니다. bool?; XmlSerializernull 일 때 i:nil="true"의 읽기/쓰기를 제대로 처리합니다.

예외가 발생하지 않도록 코드가 적용 가능한 경우 null 값을 차지하도록 설계되었는지 확인하십시오.

관련 문제