2013-01-20 2 views
3

DataContractSerializer의 Deserialize가 누락 된 값을 무시하고 모든 데이터를 버려지 지 않고 나머지 데이터를 직렬화 해제하지 않고 예외를 던지고 NULL을 반환하는 것을 방지 할 수있는 방법이 있습니까?하나의 값이 누락되면 DataContractSerializer가 완전하게 실패합니다

나는 응용 프로그램을 적극적으로 구축하고 있으므로 자연스럽게 해당 객체는 새로운 필드가 자주 추가되고 더 나아가 객체 유형이 생길 때마다 모든 데이터를 다시 입력해야한다는 고통이 더 커집니다. 여분의 필드.

답변

1

속성의 IsRequired 속성을 사용할 수 있습니다.

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datamemberattribute_properties.aspx

예 :

[DataContract] 
public class Data 
{ 
    [DataMember] 
    public string Required { get; set; } 

    [DataMember(IsRequired=false)] 
    public string? NotRequired { get; set; } 
} 
+0

은'[DataMember를] '속성은 애드 팍 명시 true로 설정되어 있지 않으면 * 필요하지 않은 애드 팍 속성 * 지정된 경우. https://msdn.microsoft.com/en-us/library/aa347792(v=vs.110).aspx - ".. DataMemberAttribute 특성에 IsRequired 속성이 있습니다 (* 기본값은 false *입니다)." 위 예제에서 * Required 및 NotRequired 속성은 DataContractSerializer에 의해 * 필요하지 않습니다. – user2864740