C# WCF DataContractSerializer 유형
원본 주소: 클릭하여 링크 열기
DataContractSerializer 클래스
제공된 데이터 계약을 사용하여 유형 인스턴스를 XML 스트림 또는 문서로 직렬화 및 역직렬화합니다. 이 클래스는 상속될 수 없습니다.
네임스페이스: System.Runtime.Serialization
어셈블리: System.Runtime .Serialization (System.Runtime.Serialization.dll에서)
설명
DataContractSerializer 클래스를 사용하여 유형을 변환합니다. XML 스트림이나 문서로 직렬화 및 역직렬화됩니다. 클래스에 DataContractAttribute 특성을 적용하고 클래스 멤버에 DataMemberAttribute 특성을 적용하여 직렬화할 속성과 필드를 지정할 수 있습니다.
문자 그대로의 의미는 데이터 계약 직렬화입니다. 이 문서에서는 주로 DataContractSerializer를 사용한 직렬화 및 역직렬화에 대해 설명합니다. DataContractAttribute, 이 기능은 열거형, 클래스 및 구조에만 사용할 수 있으며 인터페이스에는 적용할 수 없습니다. 봉인된 키워드를 통해 DataContractAttribute를 상속할 수 없다는 것을 알 수 있습니다. AllowMutiple 특성은 False입니다. 이는 하나의 DataContractAttribute 특성만 데이터 형식에 적용할 수 있음을 나타냅니다.
위의 DataContractAttribute 정의에서 DataContractAttribute에는 5개의 속성 멤버만 포함되어 있음을 알 수 있습니다. 그 중 Name과 Namespace는 데이터 계약의 이름과 네임스페이스를 나타내고 IsReference는 데이터 계약의 기존 참조를 유지할지 여부를 나타냅니다. 개체를 직렬화하는 동안 이 속성의 기본값은 False입니다.데이터 계약 멤버는 표시 선택 메커니즘을 채택합니다. 즉, DataContractAttribute 속성이 적용되는 데이터 유형의 속성/필드는 계약의 데이터 멤버를 자동으로 생성하지 않고 해당 속성/필드만 생성합니다. DataMemberAttribute 특성이 적용되는 데이터 계약의 구성원이어야 합니다.
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------ namespace System.Runtime.Serialization { // 摘要: // 指定该类型要定义或实现一个数据协定,并可由序列化程序(如 System.Runtime.Serialization.DataContractSerializer)进行序列化。 // 若要使其类型可序列化,类型作者必须为其类型定义数据协定。 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum, Inherited = false, AllowMultiple = false)] public sealed class DataContractAttribute : Attribute { string name; string ns; bool isNameSetExplicitly; bool isNamespaceSetExplicitly; bool isReference; bool isReferenceSetExplicitly; // 摘要: // 初始化 System.Runtime.Serialization.DataContractAttribute 类的新实例。 public DataContractAttribute() { } // 摘要: // 获取或设置一个值,该值指示是否保留对象引用数据。 // // 返回结果: // 如果使用标准 XML 保留对象引用数据,则为 true;否则为 false。 默认值为 false。 public bool IsReference { get { return isReference; } set { isReference = value; isReferenceSetExplicitly = true; } } public bool IsReferenceSetExplicitly { get { return isReferenceSetExplicitly; } } // // 摘要: // 获取或设置类型的数据协定的命名空间。 // // 返回结果: // 协定的命名空间。 public string Namespace { get { return ns; } set { ns = value; isNamespaceSetExplicitly = true; } } public bool IsNamespaceSetExplicitly { get { return isNamespaceSetExplicitly; } } // // 摘要: // 获取或设置类型的数据协定的名称。 // // 返回结果: // 数据协定的本地名称。 默认值是应用了该属性的类的名称。 public string Name { get { return name; } set { name = value; isNameSetExplicitly = true; } } public bool IsNameSetExplicitly { get { return isNameSetExplicitly; } } } }
DataMemberAttribute
위에서 DataMemberAttribute에 적용된 AttributeUsageAttribute 속성 이 기능은 필드와 속성에만 적용 가능한 것 같습니다. 왜냐하면 이 두 요소만이 "데이터" 멤버이기 때문입니다. 네 가지 속성은 각각 다음과 같은 의미를 나타냅니다.
이름: 데이터 멤버의 이름, 기본값은 필드 또는 속성의 이름입니다.
Order: 최종 직렬화된 XML에서 해당 데이터 멤버가 나타나는 위치입니다. Order 값이 작을수록 테스트가 더 좋습니다.
IsRequired: 속성 멤버가 필수 멤버인지 여부를 나타냅니다. 기본값은 false이며, 이는 이 멤버가 기본값이 될 수 있음을 나타냅니다.EmitDefaultValue: 직렬화되는 필드 또는 속성의 기본값을 직렬화할지 여부를 지정하는 값을 가져오거나 설정합니다. 직렬화 스트림에서 멤버의 기본값을 생성해야 하면 true이고, 그렇지 않으면 false입니다. 기본값은 true입니다.
- 소스코드 소스 : 링크를 클릭하시면 열립니다
위 내용은 C# WCF DataContractSerializer 클래스의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









C#을 사용한 Active Directory 가이드. 여기에서는 소개와 구문 및 예제와 함께 C#에서 Active Directory가 작동하는 방식에 대해 설명합니다.

C#의 난수 생성기 가이드입니다. 여기서는 난수 생성기의 작동 방식, 의사 난수 및 보안 숫자의 개념에 대해 설명합니다.

C#의 액세스 수정자에 대한 안내입니다. 예제 및 출력과 함께 C#의 액세스 한정자의 소개 유형에 대해 논의했습니다.

C# 데이터 그리드 뷰 가이드. 여기서는 SQL 데이터베이스 또는 Excel 파일에서 데이터 그리드 보기를 로드하고 내보내는 방법에 대한 예를 설명합니다.
