나는 그것의 널 (NULL) 날짜 시간과 교류 # 객체를 직렬화 할 때,C#의 XML 직렬화는 기록하지 않습니다 널
<EndDate d2p1:nil="true" xmlns:d2p1="http://www.w3.org/2001/XMLSchema-instance" />
나는 그것의 널 (NULL) 날짜 시간과 교류 # 객체를 직렬화 할 때,C#의 XML 직렬화는 기록하지 않습니다 널
<EndDate d2p1:nil="true" xmlns:d2p1="http://www.w3.org/2001/XMLSchema-instance" />
당신은 (그 문제에 대한, 또는 다른 값) null 값을 생략 할 수 Specified
확장 된 속성을 사용하여 객체 여부를 말할 수 있습니다. 기본적으로 부울로 끝에 추가 된 Specified
이라는 단어가있는 serialize 된 속성과 같은 이름의 다른 속성을 만듭니다. Specified
속성이 true
이면 제어중인 속성이 serialize됩니다. 나는이 오래된 스레드 알고 있지만, 경우에 다른 사람이 찾을
[XmlElement("EndDate")]
public DateTime? EndDate { get; set; }
[XmlIgnore]
public bool EndDateSpecified { get {
return (EndDate != null && EndDate.HasValue); } }
이 당신이 널 (null)에 대해 빈 요소가
:
또한 구현할 수를이 false
경우 그렇지 않으면, 다른 속성은 완전히 XML 파일에서 제외됩니다 각 속성에 대해 serialize해야하는지 여부를 확인하는 public 메서드입니다. 협약은 다음과 같습니다 귀하의 경우 예를 들어
bool ShouldSerialize[YourPropertyName]();
,
public bool ShouldSerializeEndDate(){
return (EndDate != null && EndDate.HasValue);
}
당신이 직렬화를 선택적으로 할 각 속성에 대해이 작업을 수행합니다.
고맙다. – Patrick
둘째, 작동합니다. – MvcCmsJon
매우 영리합니다. 감사! '[XmlElement ("EndDate")]'는 필요합니까? – Deadlykipper