방법: 클래스 또는 구조체에 대한 기본 데이터 계약 만들기
이 항목에서는 클래스 또는 구조체를 사용하여 데이터 계약을 만드는 기본 단계를 보여 줍니다. 데이터 계약 및 만드는 방법에 대한 자세한 내용은 데이터 계약 사용을 참조하십시오.
기본 WCF(Windows Communication Foundation) 서비스 및 클라이언트를 만드는 단계를 안내하는 자습서는 초보자를 위한 자습서를 참조하십시오. 기본 서비스 및 클라이언트로 구성된 작업 샘플 응용 프로그램에 대해서는 Basic Data Contract을 참조하십시오.
클래스 또는 구조체에 대한 기본 데이터 계약을 만들려면
DataContractAttribute 특성을 클래스에 적용하여 형식에 데이터 계약이 있음을 선언합니다. 특성이 없는 경우를 비롯한 모든 public 형식을 serialize할 있습니다. DataContractAttribute 특성이 없는 경우 DataContractSerializer는 데이터 계약을 유추합니다. 자세한 내용은 다음 항목을 참조하십시오. serialize할 수 있는 형식를 참조하십시오.
DataMemberAttribute 특성을 각 멤버에 적용하여 serialize되는 멤버(속성, 필드 또는 이벤트)를 정의합니다. 이러한 멤버를 데이터 멤버라고 합니다. 기본적으로 모든 public 형식을 serialize할 있습니다. 자세한 내용은 다음 항목을 참조하십시오. serialize할 수 있는 형식를 참조하십시오.
참고: DataMemberAttribute 특성을 private 필드에 적용하여 데이터가 다른 사용자에게 노출되게 할 수 있습니다. 멤버에 중요한 데이터가 포함되지 않도록 해야 합니다.
예제
다음 예제에서는 클래스 및 해당 멤버에 DataContractAttribute 및 DataMemberAttribute 특성을 적용하여 Person
형식의 데이터 계약을 만드는 방법을 보여 줍니다.
<DataContract()> _
Public Class Person
' This member is serialized.
<DataMember()> _
Friend FullName As String
' This is serialized even though it is private.
<DataMember()> _
Private Age As Integer
' This is not serialized because the DataMemberAttribute
' has not been applied.
Private MailingAddress As String
' This is not serialized, but the property is.
Private telephoneNumberValue As String
<DataMember()> _
Public Property TelephoneNumber() As String
Get
Return telephoneNumberValue
End Get
Set
telephoneNumberValue = value
End Set
End Property
End Class
using System;
using System.Runtime.Serialization;
[DataContract]
public class Person
{
// This member is serialized.
[DataMember]
internal string FullName;
// This is serialized even though it is private.
[DataMember]
private int Age;
// This is not serialized because the DataMemberAttribute
// has not been applied.
private string MailingAddress;
// This is not serialized, but the property is.
private string telephoneNumberValue;
[DataMember]
public string TelephoneNumber
{
get { return telephoneNumberValue; }
set { telephoneNumberValue = value; }
}
}
참고 항목
작업
참조
DataContractAttribute
DataMemberAttribute