Nasıl yapılır: Bir Sınıf veya Yapı için Temel Bir Veri Sözleşmesi Oluşturma
Bu konuda, bir sınıf veya yapı kullanarak veri sözleşmesi oluşturmanın temel adımları gösterilmektedir. Veri sözleşmeleri ve bunların nasıl kullanıldığı hakkında daha fazla bilgi için bkz . Veri Sözleşmelerini Kullanma.
Temel bir Windows Communication Foundation (WCF) hizmeti ve istemcisi oluşturma adımlarını gösteren bir öğretici için bkz . Başlarken Öğreticisi. Temel hizmet ve istemciden oluşan çalışan bir örnek uygulama için bkz . Temel Veri Sözleşmesi.
Bir sınıf veya yapı için temel veri sözleşmesi oluşturmak için
özniteliğini sınıfına uygulayarak türün bir veri sözleşmesi olduğunu DataContractAttribute bildirin. Öznitelikleri olmayanlar da dahil olmak üzere tüm genel türlerin serileştirilebilir olduğunu unutmayın. DataContractSerializer özniteliği yoksa bir veri sözleşmesi çıkartırDataContractAttribute. Daha fazla bilgi için bkz . SeriLeştirilebilir Türler.
Özniteliğini her üyeye uygulayarak DataMemberAttribute seri hale getirilen üyeleri (özellikler, alanlar veya olaylar) tanımlayın. Bu üyelere veri üyesi adı verilir. Varsayılan olarak, tüm genel türler serileştirilebilir. Daha fazla bilgi için bkz . SeriLeştirilebilir Türler.
Not
Özniteliğini DataMemberAttribute özel alanlara uygulayarak verilerin başkalarına açık olmasını sağlayabilirsiniz. Üyenin hassas veriler içermediğinden emin olun.
Örnek
Aşağıdaki örnekte, sınıfına ve üyelerine ve DataMemberAttribute özniteliklerini uygulayarak DataContractAttribute tür için Person
bir veri sözleşmesi oluşturma gösterilmektedir.
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; }
}
}
<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