2014-12-02 4 views
0

여기 System.Xml.Serialization.XmlSerializer와 현재, 내가 XML로 직렬화 해요 C# 클래스입니다 :XML 직렬화에서 개별 목록 구성원을 생략하는 방법은 무엇입니까?

public class Stuff 
{ 
    // ... 

    [XmlElement("things")] 
    public List<Thing> Things { get; set; } 
} 

제어 할 수있는 방법이 있나요, 직렬화시에, 각 개별 것 직렬화 여부 그 목록? (예를 들어, 각 Thing의 술어를 호출하여 포함해야하는지 여부를 결정하십시오.)

참고 : "ShouldSerialize *"트릭을 other questions에서 많이 읽었지만 프로퍼티 레벨 - 즉,리스트 전체를 직렬화하거나, 그것들 중 아무 것도 직렬화하지 않는다. 내가 원하는 것은 내 목록의 각 구성원에 대해 결정하는 것입니다. XmlSerializer가 더 좋은 방법이 있다면 솔루션에서 XmlSerializer를 사용할 필요가 없습니다.

답변

0

직렬화는 개체의 특정 속성을 제외하고 전체 개체를 직렬화하는 것에 관한 것입니다.

목록의 개별 요소를 직렬화하지 않으려면 목록에 넣지 마십시오. 목록의 복사본을 만들지 만 바람직하지 않은 요소가 제거 된 상태 여야합니다.

+0

고마워, 그게 나를 위해 일하는 것 같아. 속성을 제어하지만 목록 멤버가 아닌 것을 구분하는 것은 나에게 임의적이라고 느껴지지만 매우 자주 필요한 기능이 아닌 경우 합리적인 것처럼 보입니다. – user1454265