정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

DataContractSerializer 클래스

2013-12-13

제공된 데이터 계약을 사용하여 형식 인스턴스를 XML 스트림 또는 문서로 직렬화 및 역직렬화합니다. 이 클래스는 상속될 수 없습니다.

System.Object
  System.Runtime.Serialization.XmlObjectSerializer
    System.Runtime.Serialization.DataContractSerializer

Namespace:  System.Runtime.Serialization
어셈블리:  System.Runtime.Serialization(System.Runtime.Serialization.dll)

public sealed class DataContractSerializer : XmlObjectSerializer

DataContractSerializer 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드DataContractSerializer(Type)DataContractSerializer 클래스의 새 인스턴스를 초기화하여 지정된 형식의 개체를 직렬화 또는 역직렬화합니다.
Public 메서드DataContractSerializer(Type, IEnumerable<Type>)DataContractSerializer 클래스의 새 인스턴스를 초기화하여 지정된 형식의 개체와 개체 그래프에 있을 수 있는 알려진 형식 컬렉션을 직렬화 또는 역직렬화합니다.
Public 메서드DataContractSerializer(Type, DataContractSerializerSettings)DataContractSerializer 클래스의 새 인스턴스를 초기화하여 지정된 형식 및 설정의 개체를 직렬화 또는 역직렬화합니다.
Public 메서드DataContractSerializer(Type, String, String)DataContractSerializer 클래스의 새 인스턴스를 초기화하여 제공된 XML 루트 요소와 네임스페이스를 사용하는 지정된 형식의 개체를 직렬화 또는 역직렬화합니다.
Public 메서드DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString)DataContractSerializer 클래스의 새 인스턴스를 초기화하여 XmlDictionaryString 형식의 매개 변수를 통해 지정된 XML 루트 요소와 네임스페이스를 사용하는 지정된 형식의 개체를 직렬화 또는 역직렬화합니다.
Public 메서드DataContractSerializer(Type, String, String, IEnumerable<Type>)DataContractSerializer 클래스의 새 인스턴스를 초기화하여 지정된 형식의 개체를 직렬화 또는 역직렬화합니다. 또한 이 메서드는 개체 그래프에 있을 수 있는 알려진 형식 목록뿐 아니라 루트 XML 요소와 네임스페이스를 두 개의 문자열 매개 변수로 지정합니다.
Public 메서드DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>)DataContractSerializer 클래스의 새 인스턴스를 초기화하여 지정된 형식의 개체를 직렬화 또는 역직렬화합니다. 또한 이 메서드는 개체 그래프에 있을 수 있는 알려진 형식 목록뿐 아니라 루트 XML 요소와 네임스페이스를 두 개의 XmlDictionaryString 매개 변수로 지정합니다.
맨 위

  이름설명
Public 속성IgnoreExtensionDataObject클래스를 직렬화 또는 역직렬화 중인 경우 클래스 확장에서 제공하는 데이터를 무시할지 여부를 지정하는 값을 가져옵니다.
Public 속성KnownTypesDataContractSerializer 인스턴스를 사용하여 직렬화된 개체 그래프에 있을 수 있는 형식 컬렉션을 가져옵니다.
Public 속성MaxItemsInObjectGraph개체 그래프에서 직렬화 또는 역직렬화할 최대 항목 수를 가져옵니다.
Public 속성PreserveObjectReferences비표준 XML 구문을 사용하여 개체 참조 데이터를 유지할지 여부를 지정하는 값을 가져옵니다.
Public 속성SerializeReadOnlyTypes읽기 전용 형식이 직렬화되는지 여부를 지정하는 값을 가져옵니다.
맨 위

  이름설명
Public 메서드Equals(Object)지정한 Object가 현재 Object와 같은지 확인합니다. (Object에서 상속됨)
Protected 메서드Finalize가비지 수집기에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드GetHashCode특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드IsStartObject(XmlDictionaryReader)XmlDictionaryReader가 역직렬화할 수 있는 개체에 배치되어 있는지 확인합니다. (XmlObjectSerializer.IsStartObject(XmlDictionaryReader)을(를) 재정의함)
Public 메서드IsStartObject(XmlReader)XmlReader가 역직렬화할 수 있는 개체에 배치되어 있는지 확인합니다. (XmlObjectSerializer.IsStartObject(XmlReader)을(를) 재정의함)
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드ReadObject(Stream)Stream을 사용하여 XML 스트림 또는 문서를 읽고 역직렬화된 개체를 반환합니다. (XmlObjectSerializer에서 상속됨)
Public 메서드ReadObject(XmlDictionaryReader)XmlDictionaryReader를 사용하여 XML 문서 또는 스트림을 읽고 역직렬화된 개체를 반환합니다. (XmlObjectSerializer에서 상속됨)
Public 메서드ReadObject(XmlReader)XmlReader를 사용하여 XML 스트림을 읽고 역직렬화된 개체를 반환합니다. (XmlObjectSerializer.ReadObject(XmlReader)을(를) 재정의함)
Public 메서드ReadObject(XmlDictionaryReader, Boolean)XmlDictionaryReader를 사용하여 XML 스트림을 읽고 역직렬화된 개체를 반환하며, 값을 읽기 전에 개체 이름을 확인하기 위해 검사할지 여부도 지정합니다. (XmlObjectSerializer.ReadObject(XmlDictionaryReader, Boolean)을(를) 재정의함)
Public 메서드ReadObject(XmlReader, Boolean)XmlReader를 사용하여 XML 스트림을 읽고 역직렬화된 개체를 반환하며, 값을 읽기 전에 개체 이름을 확인하기 위해 검사할지 여부도 지정합니다. (XmlObjectSerializer.ReadObject(XmlReader, Boolean)을(를) 재정의함)
Public 메서드ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
Public 메서드WriteEndObject(XmlDictionaryWriter)XmlDictionaryWriter를 사용하여 닫는 XML 요소를 씁니다. (XmlObjectSerializer.WriteEndObject(XmlDictionaryWriter)을(를) 재정의함)
Public 메서드WriteEndObject(XmlWriter)XmlWriter를 사용하여 닫는 XML 요소를 씁니다. (XmlObjectSerializer.WriteEndObject(XmlWriter)을(를) 재정의함)
Public 메서드WriteObject(Stream, Object)지정된 Stream을 사용하여 개체의 전체 콘텐츠(시작, 콘텐츠 및 끝)를 XML 문서 또는 스트림에 씁니다. (XmlObjectSerializer에서 상속됨)
Public 메서드WriteObject(XmlDictionaryWriter, Object)지정된 XmlDictionaryWriter을 사용하여 개체의 전체 콘텐츠(시작, 콘텐츠 및 끝)를 XML 문서 또는 스트림에 씁니다. (XmlObjectSerializer에서 상속됨)
Public 메서드WriteObject(XmlWriter, Object)XmlWriter를 사용하여 모든 개체 데이터(시작 XML 요소, 콘텐츠 및 닫는 요소)를 XML 문서 또는 스트림에 씁니다. (XmlObjectSerializer.WriteObject(XmlWriter, Object)을(를) 재정의함)
Public 메서드WriteObjectContent(XmlDictionaryWriter, Object)XmlDictionaryWriter를 사용하여 XML 콘텐츠를 씁니다. (XmlObjectSerializer.WriteObjectContent(XmlDictionaryWriter, Object)을(를) 재정의함)
Public 메서드WriteObjectContent(XmlWriter, Object)XmlWriter를 사용하여 XML 콘텐츠를 씁니다. (XmlObjectSerializer.WriteObjectContent(XmlWriter, Object)을(를) 재정의함)
Public 메서드WriteStartObject(XmlDictionaryWriter, Object)XmlDictionaryWriter를 사용하여 여는 XML 요소를 씁니다. (XmlObjectSerializer.WriteStartObject(XmlDictionaryWriter, Object)을(를) 재정의함)
Public 메서드WriteStartObject(XmlWriter, Object)XmlWriter를 사용하여 여는 XML 요소를 씁니다. (XmlObjectSerializer.WriteStartObject(XmlWriter, Object)을(를) 재정의함)
맨 위

DataContractSerializer 클래스를 사용하여 형식 인스턴스를 XML 스트림이나 문서로 직렬화 및 역직렬화합니다. 예를 들어 이름 및 주소와 같은 필수 데이터를 포함하는 속성을 사용하여 이름이 Person인 형식을 만들 수 있습니다. 그런 다음 Person 클래스 인스턴스를 만들어 조작하고 나중에 검색하기 위해 모든 속성 값을 XML 문서에 쓰거나 즉시 전송하기 위해 XML 스트림에 쓸 수 있습니다. 가장 중요한 점은 DataContractSerializer가 Windows Phone 메시지에 전송되는 데이터를 직렬화 및 역직렬화하는 데 사용된다는 것입니다. DataContractAttribute 특성을 클래스에 적용하고 DataMemberAttribute 특성을 클래스 멤버에 적용하여 직렬화되는 속성과 필드를 지정합니다.

DataContractSerializer를 사용하려면 먼저 형식을 쓰거나 읽기에 적합한 클래스 및 개체 인스턴스(예: XmlDictionaryWriter 인스턴스)를 만듭니다. 그런 다음 WriteObject 메서드를 호출하여 데이터를 유지합니다. 데이터를 검색하려면 데이터 형식 읽기에 적합한 개체(예: XML 문서의 경우 XmlDictionaryReader)를 만들고 ReadObject 메서드를 호출합니다.

직렬화 또는 역직렬화를 위해 클래스 준비

DataContractSerializerDataContractAttributeDataMemberAttribute 클래스와 함께 사용됩니다. 직렬화를 위해 클래스를 준비하려면 클래스에 DataContractAttribute를 적용합니다. 직렬화하려는 데이터를 반환하는 클래스의 각 멤버에 대해 DataMemberAttribute를 적용합니다. 공개적으로 액세스 가능한 경우 필드와 속성을 직렬화할 수 있습니다.

예를 들어 스키마는 ID 속성을 사용하여 Customer를 지정하지만 이미 Name 속성을 통해 Person이라는 형식을 사용하는 기존 응용프로그램이 있습니다. 계약을 준수하는 형식을 만들려면 먼저 클래스에 DataContractAttribute를 적용합니다. 그런 다음 직렬화하려는 모든 필드나 속성에 DataMemberAttribute를 적용합니다.

XML의 최종 형식은 텍스트가 아니어도 됩니다. 대신 DataContractSerializer는 데이터를 XML 정보 집합으로 쓰기 때문에 XmlReaderXmlWriter에서 인식되는 모든 형식으로 데이터를 쓸 수 있습니다. XmlDictionaryReaderXmlDictionaryWriter 클래스는 둘 다 DataContractSerializer 작업에 최적화되었으므로 두 클래스를 사용하여 읽고 쓰는 것이 좋습니다.

Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 모든 인스턴스 멤버는 스레드로부터 안전하지 않을 수 있습니다.

표시: