DataContractSerializer Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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.