0

값이 없을 때 DataContractSerializer를 사용하여 목록 노드를 숨기는 방법은 무엇입니까?값이없는 경우 DataContractSerializer를 사용하여 목록 노드를 숨기거나 제외하는 방법은 무엇입니까?

[DataContract(Namespace = "")] 
    public class Order 
    { 
     [DataMember(EmitDefaultValue = false)] 
     public string Name { get; set; } 

     [DataMember(EmitDefaultValue = false)] 
     public List<OrderItem> OrderItems { get; set; } 
} 

이름 값이없는 경우가 숨겨집니다하지만 OrderItems에 값이없는 경우 내가 DataContractSerlializer을 사용하고

<OrderItems />.로 나타납니다.

답변

1

정상 작동합니다. 하지 않는 한 -

yourObject.OrderItems = new List<OrderItem>(); 

코드에 어딘가에 있습니다. 메모리는 목록에 할당되며 더 이상 기본값 인 null! 오히려, 따라서 OrderItem

자사의 빈 목록이 EmitDefaultValue는 직렬화하기 전에 코드 어딘가에 목록을 초기화하는 경우 작동하지 않습니다와 XML에 <OrderItems />을 추가합니다.

+0

나는 AutoMapper를 사용하고 있으며 기본적으로 빈 목록을 만듭니다. –

관련 문제