DataContractSerializer를 사용하여 직렬화 할 때 속성을 무시하려면 어떻게해야합니까?
.NET 3.5SP1 및 DataContractSerializer를 사용하여 클래스를 직렬화하고 있습니다. SP1에서는 클래스에 DataContract / DataMember 특성을 포함 할 필요가 없도록 전체 동작을 직렬화하기 위해 동작을 변경했습니다. 이것은 내가 사용하는 동작이지만 이제 serializer에서 하나의 속성을 무시해야합니다. 이 작업을 수행하는 한 가지 방법은 DataContract 특성을 클래스에 추가하고 포함하려는 모든 멤버에 DataMember 특성을 추가하는 것입니다. 그러나 이것이 효과가 없다는 이유가 있습니다.
그래서 내 질문은, DataContractSerializer가 속성을 무시하게하는 데 사용할 수있는 속성이나 무언가가 있습니까?
또한 DataContractSerializer는 [Serializable]으로 표시된 항목을 직렬화하고 .NET 3.5 SP1 이상에서 표시되지 않은 유형을 직렬화하여 익명 형식의 직렬화를 지원할 수 있습니다.
따라서 클래스를 꾸미는 방법에 따라 멤버가 직렬화되지 않도록하는 방법에 따라 다릅니다.
- 를 사용한 경우 속성
[DataContract]
을 제거하십시오[DataMember]
. - 을 사용한 경우 속성 필드 앞에
[Serializable]
추가하십시오 .[NonSerialized]
- 수업을 꾸미지 않았다면
[IgnoreDataMember]
숙소에 추가해야 합니다.
XML Serializing에서는 클래스를 serialize 할 때 [XmlIgnore] 특성 (System.Xml.Serialization.XmlIgnoreAttribute)을 사용하여 속성을 무시할 수 있습니다.
이것은 당신에게 유용 할 수도 있습니다 (또는 XML에서 직렬화 할 때 속성을 무시하는 방법을 찾을 때이 질문을 발견 한 사람에게도 유용 할 수 있습니다).
[NonSerialized ()] 속성으로 필드를 표시하십시오. 이것은 직렬화기에 필드를 무시하도록 지시합니다.
https://msdn.microsoft.com/en-us/library/system.nonserializedattribute(v=vs.110).aspx
당신이 말하는 것은이 위치의 MSDN 라이브러리에서 말하는 것과 충돌합니다.
http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx
언급 한 SP1 기능에 대한 언급이 없습니다.
'Programing' 카테고리의 다른 글
Jenkins에서 수동으로 플러그인을 설치하는 방법 (0) | 2020.07.22 |
---|---|
seaborn factorplot에서 레이블 텍스트 회전 (0) | 2020.07.22 |
두 숫자 사이의 숫자 범위를 생성하는 방법은 무엇입니까? (0) | 2020.07.22 |
동일한 MySql 인스턴스에서 MySQL 데이터베이스 복제 (0) | 2020.07.22 |
Ubuntu 14.04 LTS (Trusty Tahr)에서 ia32-libs를 설치하는 방법 (0) | 2020.07.22 |