DataContractSerializer Sınıf

Tanım

Sağlanan bir veri sözleşmesini kullanarak bir türün örneğini serileştirir ve seri durumdan çıkararak XML akışına veya belgesine ekler. Bu sınıf devralınamaz.

public ref class DataContractSerializer sealed : System::Runtime::Serialization::XmlObjectSerializer
public sealed class DataContractSerializer : System.Runtime.Serialization.XmlObjectSerializer
type DataContractSerializer = class
    inherit XmlObjectSerializer
Public NotInheritable Class DataContractSerializer
Inherits XmlObjectSerializer
Devralma
DataContractSerializer

Açıklamalar

DataContractSerializer sınıfını, bir türün örneklerini bir XML akışına veya belgeye serileştirmek ve seriden çıkarmak için kullanın. Örneğin, ad ve adres gibi temel verileri içeren özelliklere sahip adlı Person bir tür oluşturabilirsiniz. Daha sonra sınıfın Person bir örneğini oluşturup işleyebilir ve tüm özellik değerlerini daha sonra almak üzere bir XML belgesine veya anında aktarım için bir XML akışına yazabilirsiniz. En önemlisi, DataContractSerializer Windows Communication Foundation (WCF) iletilerinde gönderilen verileri seri hale getirmek ve seri durumdan çıkarmak için kullanılır. Sınıflara DataContractAttribute özniteliğini ve sınıf üyelerine DataMemberAttribute özniteliğini uygulayarak, serileştirilen özellikleri ve alanları belirtin.

Serileştirilebilen türlerin listesi için bkz. Veri Sözleşmesi Seri Hale Getiricisi Tarafından Desteklenen Türler.

Yazma veya okuma formatını kullanmak için öncelikle bir sınıfın örneğini ve biçime uygun bir nesne oluşturun; örneğin DataContractSerializer sınıfının bir örneği. Ardından verileri kalıcı hale getirmek için yöntemini çağırın WriteObject . Verileri almak için, veri biçimini (xml belgesi için gibi XmlDictionaryReader ) okumak için uygun bir nesne oluşturun ve yöntemini çağırın ReadObject .

DataContractSerializer kullanımı hakkında daha fazla bilgi için bkz. Serileştirme ve Seri Durumdan Çıkarma.

İstemci uygulaması yapılandırma dosyasında dataContractSerializer öğesini kullanarak< bir veri sözleşmesi seri hale getiricisinin> türünü ayarlayabilirsiniz.

Sınıfları serileştirme ve deserileştirme için hazırlayın

DataContractSerializer sınıfı, DataContractAttribute ve DataMemberAttribute sınıfları ile birlikte kullanılır. Bir sınıfı serileştirme için hazırlamak amacıyla, sınıfa DataContractAttribute uygulayın. Serileştirmek istediğiniz verileri döndüren sınıfın her üyesi için uygulamasını DataMemberAttributeuygulayın. Erişilebilirlik ne olursa olsun alanları ve özellikleri seri hale getirebilirsiniz: özel, korumalı, iç, korumalı iç veya genel.

Örneğin, şemanızda bir Customer özelliği olan ID belirtilmiştir, ancak zaten bir Person özelliğine sahip Name adlı türü kullanan mevcut bir uygulamanız vardır. Sözleşmeye uygun bir tür oluşturmak için önce sınıfına DataContractAttribute uygulayın. Ardından, DataMemberAttribute serileştirmek istediğiniz her alana veya özelliğe uygulayın.

Note

DataMemberAttribute hem özel hem de kamusal üyelere uygulayabilirsiniz.

XML'nin son biçimi metin olmamalıdır. Bunun yerine, DataContractSerializer, verileri, XmlReader ve XmlWriter tarafından tanınan herhangi bir biçime yazmanızı sağlayan XML bilgi kümesi olarak kaydeder. XmlDictionaryReader ve XmlDictionaryWriter sınıflarını okuma ve yazma işlemlerinizde kullanmanız önerilir, çünkü her ikisi de DataContractSerializer ile çalışacak şekilde optimize edilmiştir.

Serileştirme veya seri durumdan çıkarma gerçekleşmeden önce doldurulması gereken alanları veya özellikleri olan bir sınıf oluşturuyorsanız, serileştirme Geri ÇağırmalarıVersion-Tolerant açıklandığı gibi geri çağırma özniteliklerini kullanın.

Bilinen türler koleksiyonuna ekleme

Bir nesneyi seri hale getirdiğinizde veya seri durumdan çıkarırken, türünün DataContractSerializer tarafından "bilinen" olması gerekir. Uygulayan IEnumerable<T> bir sınıfın örneğini oluşturarak (örneğin List<T>) ve bilinen türleri koleksiyona ekleyerek başlayın. Ardından, DataContractSerializer kabul eden aşırı yüklemelerden birini kullanarak IEnumerable<T> örneğini oluşturun (örneğin, DataContractSerializer(Type, IEnumerable<Type>)).

Note

Diğer ilkel türlerden farklı olarak, DateTimeOffset yapı varsayılan olarak bilinen bir tür değildir, bu nedenle bilinen türler listesine el ile eklenmelidir (bkz. Veri Sözleşmesi Bilinen Türleri).

İleriye dönük uyumluluk

, DataContractSerializer sözleşmenin gelecekteki sürümleriyle uyumlu olacak şekilde tasarlanmış veri sözleşmelerini anlar. Bu tür türler arabirimi uygular IExtensibleDataObject . Arabirim, bir ExtensionData özelliğine sahiptir ve bu özellik bir ExtensionDataObject nesne döndürür. Daha fazla bilgi için bkz. Forward-Compatible Veri Sözleşmeleri.

Oluşturucular

Name Description
DataContractSerializer(Type, DataContractSerializerSettings)

Belirtilen tür ve ayarlardaki DataContractSerializer bir nesneyi serileştirmek veya seri durumdan çıkarmak için sınıfının yeni bir örneğini başlatır.

DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver)

Belirtilen türde bir nesneyi serileştirmek veya seri durumdan çıkarmak için sınıfının yeni bir örneğini DataContractSerializer başlatır. Bu yöntem ayrıca nesne grafında mevcut olabilecek bilinen türlerin listesini, serileştirilecek en fazla grafik öğesi sayısını, beklenmeyen verileri yoksayacak parametreleri, grafikteki nesne başvuru verilerini korumak için standart olmayan XML yapılarının kullanılıp kullanılmayacağını, özel serileştirme için bir vekili ve çalışma zamanında eşleme xsi:type bildirimleri için bir alternatif belirtir.

DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate)

Belirtilen türde bir nesneyi serileştirmek veya seri durumdan çıkarmak için sınıfının yeni bir örneğini DataContractSerializer başlatır. Bu yöntem ayrıca nesne grafında bulunabilecek bilinen türlerin listesini, serileştirilecek en fazla grafik öğesi sayısını, beklenmeyen verileri yoksayacak parametreleri, grafikteki nesne başvuru verilerini korumak için standart olmayan XML yapılarının kullanılıp kullanılmayacağını ve özel serileştirme için bir vekil belirtir.

DataContractSerializer(Type, IEnumerable<Type>)

Belirtilen türdeki DataContractSerializer bir nesneyi serileştirmek veya seri durumdan çıkarmak için sınıfının yeni bir örneğini ve nesne grafında mevcut olabilecek bilinen türlerden oluşan bir koleksiyonu başlatır.

DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver)

Belirtilen türde bir nesneyi serileştirmek veya seri durumdan çıkarmak için sınıfının yeni bir örneğini DataContractSerializer başlatır. Bu yöntem ayrıca nesne grafında bulunabilecek bilinen türlerin listesini, serileştirilecek en fazla grafik öğesi sayısını, beklenmeyen verileri yoksayacak parametreleri, grafikteki nesne başvuru verilerini korumak için standart olmayan XML yapılarının kullanılıp kullanılmayacağını, özel serileştirme için bir vekili, içeriği içeren XML öğesini ve ad alanını belirtir. ve çalışma zamanında bildirimleri eşlemek xsi:type için bir alternatiftir.

DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate)

Belirtilen türde bir nesneyi serileştirmek veya seri durumdan çıkarmak için sınıfının yeni bir örneğini DataContractSerializer başlatır. Bu yöntem ayrıca nesne grafında bulunabilecek bilinen türlerin listesini, serileştirilecek en fazla grafik öğesi sayısını, beklenmeyen verileri yoksayacak parametreleri, grafikteki nesne başvuru verilerini korumak için standart olmayan XML yapılarının kullanılıp kullanılmayacağını, özel serileştirme için bir vekili ve içeriği içeren XML öğesini ve ad alanını belirtir.

DataContractSerializer(Type, String, String, IEnumerable<Type>)

Belirtilen türde bir nesneyi serileştirmek veya seri durumdan çıkarmak için sınıfının yeni bir örneğini DataContractSerializer başlatır. Bu yöntem ayrıca iki dize parametresindeki kök XML öğesini ve ad alanını ve nesne grafında mevcut olabilecek bilinen türlerin listesini belirtir.

DataContractSerializer(Type, String, String)

Sağlanan XML kök öğesini ve ad alanını kullanarak belirtilen türdeki bir nesneyi serileştirmek veya seri durumdan çıkarmak için sınıfının yeni bir örneğini DataContractSerializer başlatır.

DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver)

Belirtilen türde bir nesneyi serileştirmek veya seri durumdan çıkarmak için sınıfının yeni bir örneğini DataContractSerializer başlatır. Bu yöntem ayrıca nesne grafında bulunabilecek bilinen türlerin listesini, serileştirilecek en fazla grafik öğesi sayısını, beklenmeyen verileri yoksayacak parametreleri, grafikteki nesne başvuru verilerini korumak için standart olmayan XML yapılarının kullanılıp kullanılmayacağını, özel serileştirmeye yönelik bir vekili, içeriği içeren XML öğesini ve ad alanını belirten parametrelerini XmlDictionaryString belirtir. ve çalışma zamanında bildirimleri eşlemek xsi:type için bir alternatiftir.

DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate)

Belirtilen türde bir nesneyi serileştirmek veya seri durumdan çıkarmak için sınıfının yeni bir örneğini DataContractSerializer başlatır. Bu yöntem ayrıca nesne grafında bulunabilecek bilinen türlerin listesini, serileştirilecek en fazla grafik öğesi sayısını, beklenmeyen verileri yoksayacak parametreleri, grafikteki nesne başvuru verilerini korumak için standart olmayan XML yapılarının kullanılıp kullanılmayacağını, özel serileştirmeye yönelik bir vekili ve içeriği içeren XML öğesini ve ad alanını belirten parametrelerini XmlDictionaryString belirtir.

DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>)

Belirtilen türde bir nesneyi serileştirmek veya seri durumdan çıkarmak için sınıfının yeni bir örneğini DataContractSerializer başlatır. Bu yöntem ayrıca iki XmlDictionaryString parametredeki kök XML öğesini ve ad alanını ve nesne grafında mevcut olabilecek bilinen türlerin listesini belirtir.

DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString)

türündeki DataContractSerializer parametreler XmlDictionaryStringaracılığıyla belirtilen XML kök öğesini ve ad alanını kullanarak belirtilen türdeki bir nesneyi serileştirmek veya seri durumdan çıkarmak için sınıfının yeni bir örneğini başlatır.

DataContractSerializer(Type)

Belirtilen türde bir nesneyi serileştirmek veya seri durumdan çıkarmak için sınıfının yeni bir örneğini DataContractSerializer başlatır.

Özellikler

Name Description
DataContractResolver

Bildirimleri bilinen sözleşme türleriyle dinamik olarak eşlemek xsi:type için kullanılan bileşeni alır.

DataContractSurrogate

Serileştirme veya seri durumdan çıkarma işlemini genişletebilen bir vekil tür alır.

IgnoreExtensionDataObject

Sınıf serileştirilirken veya seri durumdan çıkarılırken sınıfın bir uzantısı tarafından sağlanan verilerin yoksayılıp yoksayılmayacağını belirten bir değer alır.

KnownTypes

Nesne grafında mevcut olabilecek türlerin bu örneği DataContractSerializerkullanılarak seri hale getirilmiş bir koleksiyonunu alır.

MaxItemsInObjectGraph

Seri hale getirmek veya seri durumdan çıkarmak için nesne grafiğindeki en fazla öğe sayısını alır.

PreserveObjectReferences

Nesne başvuru verilerini korumak için standart olmayan XML yapılarının kullanılıp kullanılmayacağını belirten bir değer alır.

SerializeReadOnlyTypes

Salt okunur türlerin serileştirilip serileştirilmeyeceğini belirten bir değer alır.

Yöntemler

Name Description
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
IsStartObject(XmlDictionaryReader)

öğesinin XmlDictionaryReader seri durumdan çıkarılabilen bir nesneye yerleştirilip yerleştirilmeyeceğini belirler.

IsStartObject(XmlReader)

öğesinin XmlReader seri durumdan çıkarılabilen bir nesneye yerleştirilip yerleştirilmeyeceğini belirler.

MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ReadObject(Stream)

XML akışını veya belgesini ile Stream okur ve seri durumdan çıkarılmış nesneyi döndürür.

(Devralındığı yer: XmlObjectSerializer)
ReadObject(XmlDictionaryReader, Boolean, DataContractResolver)

XML belgesini veya belge akışını okur ve seri durumdan çıkarılmış nesneyi döndürür. yöntemi, nesne adının doğrulanıp doğrulanmayacağını belirten bir parametre ve çalışma zamanında bildirimleri eşlemek xsi:type için bir çözümleyici içerir.

ReadObject(XmlDictionaryReader, Boolean)

XML akışını ile XmlDictionaryReader okur ve seri durumdan çıkarılmış nesneyi döndürür ve ayrıca değerini okumadan önce nesne adını doğrulamak için bir denetim yapılıp yapılmayacağını belirtir.

ReadObject(XmlDictionaryReader)

XML belgesini veya akışını ile XmlDictionaryReader okur ve seri durumdan çıkarılmış nesneyi döndürür.

(Devralındığı yer: XmlObjectSerializer)
ReadObject(XmlReader, Boolean)

XML akışını ile XmlReader okur ve seri durumdan çıkarılmış nesneyi döndürür ve ayrıca değerini okumadan önce nesne adını doğrulamak için bir denetim yapılıp yapılmayacağını belirtir.

ReadObject(XmlReader)

XML akışını ile XmlReader okur ve seri durumdan çıkarılmış nesneyi döndürür.

ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)
WriteEndObject(XmlDictionaryWriter)

kapanış XML öğesini kullanarak XmlDictionaryWriteryazar.

WriteEndObject(XmlWriter)

kapanış XML öğesini kullanarak XmlWriteryazar.

WriteObject(Stream, Object)

Nesnenin tam içeriğini (başlangıç, içerik ve bitiş) belirtilen Streamile XML belgesine veya akışına yazar.

(Devralındığı yer: XmlObjectSerializer)
WriteObject(XmlDictionaryWriter, Object, DataContractResolver)

Belirtilen XmlDictionaryWriter kullanarak tüm nesne verilerini (BAŞLANGıÇ XML öğesi, içerik ve kapsayan öğe) bir XML belgesine veya akışına yazar. yöntemi, çalışma zamanında bildirimleri eşlemek xsi:type için bir çözümleyici içerir.

WriteObject(XmlDictionaryWriter, Object)

Nesnenin tam içeriğini (başlangıç, içerik ve bitiş) belirtilen XmlDictionaryWriterile XML belgesine veya akışına yazar.

(Devralındığı yer: XmlObjectSerializer)
WriteObject(XmlWriter, Object)

Tüm nesne verilerini (başlangıç XML öğesi, içerik ve kapanış öğesi) bir XML belgesine veya akışına ile yazar XmlWriter.

WriteObjectContent(XmlDictionaryWriter, Object)

XML içeriğini kullanarak XmlDictionaryWriteryazar.

WriteObjectContent(XmlWriter, Object)

XML içeriğini kullanarak XmlWriteryazar.

WriteStartObject(XmlDictionaryWriter, Object)

Açılış XML öğesini kullanarak XmlDictionaryWriteryazar.

WriteStartObject(XmlWriter, Object)

Açılış XML öğesini kullanarak XmlWriteryazar.

Uzantı Metotları

Name Description
GetSerializationSurrogateProvider(DataContractSerializer)

Bu seri hale getirici için vekil serileştirme sağlayıcısını döndürür.

SetSerializationSurrogateProvider(DataContractSerializer, ISerializationSurrogateProvider)

Bu DataContractSerializeriçin bir vekil serileştirme sağlayıcısı belirtir.

Şunlara uygulanır

İş Parçacığı Güvenliği

Bu sınıfın örnekleri, örneğin veya IDataContractSurrogateuygulamasıyla birlikte kullanılması dışında iş parçacığı güvenlidirDataContractResolver.

Ayrıca bkz.