Bu makale, makine tarafından çevrilmiştir. Makaleyi İngilizce dilinde görüntülemek için İngilizce onay kutusunu işaretleyin. Ayrıca, fare işaretçisiyle İngilizce metnin üzerine gelerek metni açılır pencerede de görüntüleyebilirsiniz.
Çeviri
İngilizce

DataContractSerializer Sınıfı

 

Serileştirir ve bir XML akışı veya sağlanan veri sözleşme kullanarak belge bir türünün bir örneği seri durumdan çıkarır. Bu sınıf devralınamaz.

Ad alanı:   System.Runtime.Serialization
Derleme:  System.Runtime.Serialization (System.Runtime.Serialization.dll içinde)

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

public sealed class DataContractSerializer : XmlObjectSerializer

AdıAçıklama
System_CAPS_pubmethodDataContractSerializer(Type)

Yeni bir örneğini başlatır DataContractSerializer sınıfı serileştirmek veya belirtilen türe ait bir nesnenin serisini kaldırmak için.

System_CAPS_pubmethodDataContractSerializer(Type, DataContractSerializerSettings)

Yeni bir örneğini başlatır DataContractSerializer sınıfı serileştirmek veya belirtilen türünü ve ayarlarını bir nesnenin serisini kaldırmak için.

System_CAPS_pubmethodDataContractSerializer(Type, IEnumerable<Type>)

Yeni bir örneğini başlatır DataContractSerializer serileştirmek veya seri durumdan nesne grafiğinde bulunabilecek bilinen türleri koleksiyonunu ve belirtilen türde bir nesne için sınıf.

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

Yeni bir örneğini başlatır DataContractSerializer sınıfı serileştirmek veya belirtilen türe ait bir nesnenin serisini kaldırmak için. Bu yöntem Ayrıca, grafik öğeleri seri hale getirmek için grafik ve bir yedek özel seri hale getirme için nesne başvurusu verileri korumak için standart XML kullanılacak yapıları olup olmadığını beklenmeyen veri yok saymak için parametre sayısının nesne grafiğinde bulunabilecek bilinen türlerinin bir listesini belirtir.

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

Yeni bir örneğini başlatır DataContractSerializer sınıfı serileştirmek veya belirtilen türe ait bir nesnenin serisini kaldırmak için. Bu yöntem aynı zamanda grafik öğeleri seri hale getirmek için beklenmeyen veriler yok saymak için parametre sayısının nesne grafiğinde bulunabilecek bilinen türlerinin bir listesini belirtir, grafik, bir yedek özel seri hale getirme ve eşleme için diğer bir nesne başvurusu verileri korumak için standart XML kullanıp kullanmayacağınızı yapıları xsi:type çalışma zamanında bildirimleri.

System_CAPS_pubmethodDataContractSerializer(Type, String, String)

Yeni bir örneğini başlatır DataContractSerializer sınıfı serileştirmek veya sağlanan XML kök öğesi ve ad alanını kullanarak belirtilen türde bir nesnenin serisini kaldırmak için.

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

Yeni bir örneğini başlatır DataContractSerializer sınıfı serileştirmek veya belirtilen türe ait bir nesnenin serisini kaldırmak için. Bu yöntem ayrıca ad alanı ve kök XML öğesi iki dize parametresi, aynı zamanda nesne grafiğinde bulunabilecek bilinen türlerinin bir listesini belirtir.

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

Yeni bir örneğini başlatır DataContractSerializer sınıfı serileştirmek veya belirtilen türe ait bir nesnenin serisini kaldırmak için. Bu yöntem aynı zamanda grafik öğeleri seri hale getirmek için içeriği içeren grafiği, bir yedek özel seri hale getirme ve XML öğesi ve ad alanı içinde nesne başvuru verileri korumak için standart XML kullanılacak yapıları olup olmadığını beklenmeyen veri yok saymak için parametre sayısının nesne grafiğinde bulunabilecek bilinen türlerinin bir listesini belirtir.

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

Yeni bir örneğini başlatır DataContractSerializer sınıfı serileştirmek veya belirtilen türe ait bir nesnenin serisini kaldırmak için. Bu yöntem aynı zamanda grafik öğeleri seri hale getirmek için beklenmeyen veriler yok saymak için parametre sayısının nesne grafiğinde bulunabilecek bilinen türlerinin bir listesini belirtir, grafik, özel seri hale getirme, XML öğesi ve içerik ve alternatif eşleme içeren ad alanı için bir yedek nesne başvuru verileri korumak için standart XML kullanıp kullanmayacağınızı yapıları xsi:type çalışma zamanında bildirimleri.

System_CAPS_pubmethodDataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString)

Yeni bir örneğini başlatır DataContractSerializer serileştirmek veya seri durumdan türü parametrelerle belirtilen ad alanı ve XML kök öğesi kullanarak belirtilen türde bir nesne için sınıf XmlDictionaryString.

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

Yeni bir örneğini başlatır DataContractSerializer sınıfı serileştirmek veya belirtilen türe ait bir nesnenin serisini kaldırmak için. Bu yöntem ayrıca ad alanı ve kök XML öğesi iki belirtir XmlDictionaryString parametreleri gibi bir nesne grafiğinde bulunabilecek bilinen türleri listesi.

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

Yeni bir örneğini başlatır DataContractSerializer sınıfı serileştirmek veya belirtilen türe ait bir nesnenin serisini kaldırmak için. Bu yöntem aynı zamanda grafik öğeleri seri hale getirmek için beklenmeyen veriler yok saymak için parametre sayısının nesne grafiğinde bulunabilecek bilinen türlerinin bir listesini belirtir, grafik, özel seri hale getirme ve parametreleri için bir yedek nesne başvuru verileri korumak için standart XML kullanıp kullanmayacağınızı yapıları XmlDictionaryString XML öğesi ve içeriğini içeren bir ad belirtin.

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

Yeni bir örneğini başlatır DataContractSerializer sınıfı serileştirmek veya belirtilen türe ait bir nesnenin serisini kaldırmak için. Grafikte, özel seri hale getirme, parametreleri için bir yedek nesne başvuru verileri korumak için standart XML kullanıp kullanmayacağınızı oluşturur, bu yöntem ayrıca grafik öğeleri seri hale getirmek için beklenmeyen veriler yok saymak için parametre sayısının nesne grafiğinde bulunabilecek bilinen türlerinin bir listesini belirtir XmlDictionaryString içeriği içeren ad alanı ve XML öğesi belirtin ve eşleme için alternatif xsi:type çalışma zamanında bildirimleri.

AdıAçıklama
System_CAPS_pubpropertyDataContractResolver

Dinamik olarak eşlemek için kullanılan bileşen alır xsi:type sözleşmesi bilinen türler için bildirimleri.

System_CAPS_pubpropertyDataContractSurrogate

Serileştirme veya seri durumdan çıkarma işlemi genişletmek bir yedek türünü alır.

System_CAPS_pubpropertyIgnoreExtensionDataObject

Sınıfı yüklenirken bir sınıf uzantısı tarafından sağlanan verileri yoksayacak şekilde belirten bir değer alır serileştirilecek veya serisi.

System_CAPS_pubpropertyKnownTypes

Bu örneği kullanılarak serileştirilmiş nesne grafiğinde bulunabilecek türleri koleksiyonunu alır DataContractSerializer.

System_CAPS_pubpropertyMaxItemsInObjectGraph

Serileştirmek veya serisini kaldırmak için bir nesne grafiğinin en fazla öğe sayısını alır.

System_CAPS_pubpropertyPreserveObjectReferences

Standart XML kullanılacak nesne başvuru verileri korumak için yapıları olup olmadığını belirten bir değer alır.

System_CAPS_pubpropertySerializeReadOnlyTypes

Salt okunur türler seri olup olmadığını belirten bir değer alır.

AdıAçıklama
System_CAPS_pubmethodEquals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Object kaynağından devralındı.)

System_CAPS_pubmethodGetHashCode()

Varsayılan karma işlevi olarak görev yapar.(Object kaynağından devralındı.)

System_CAPS_pubmethodGetType()

Alır Type Geçerli örneğin.(Object kaynağından devralındı.)

System_CAPS_pubmethodIsStartObject(XmlDictionaryReader)

Belirler olup olmadığını XmlDictionaryReader bir nesnede seri durumdan yerleştirilir.(XmlObjectSerializer.IsStartObject(XmlDictionaryReader) geçersiz kılar.)

System_CAPS_pubmethodIsStartObject(XmlReader)

Belirler olup olmadığını XmlReader bir nesnede seri durumdan yerleştirilir.(XmlObjectSerializer.IsStartObject(XmlReader) geçersiz kılar.)

System_CAPS_pubmethodReadObject(Stream)

XML akışı veya belge ile okur bir Stream ve seri durumdan çıkarılmış nesne döndürür.(XmlObjectSerializer kaynağından devralındı.)

System_CAPS_pubmethodReadObject(XmlDictionaryReader)

XML belgesi veya akışa okur bir XmlDictionaryReader ve seri durumdan çıkarılmış nesne döndürür.(XmlObjectSerializer kaynağından devralındı.)

System_CAPS_pubmethodReadObject(XmlDictionaryReader, Boolean)

XML akışı ile okur bir XmlDictionaryReader seri durumdan çıkarılmış nesne döndürür ve ayrıca değerini okumadan önce nesne adını doğrulamak için bir onay yapılır olup olmadığını belirtir.(XmlObjectSerializer.ReadObject(XmlDictionaryReader, Boolean) geçersiz kılar.)

System_CAPS_pubmethodReadObject(XmlDictionaryReader, Boolean, DataContractResolver)

Bir XML belgesi veya belge akış okur ve seri durumdan çıkarılmış nesne döndürür. Nesne adı doğrulandı doğrulanmış olup olmadığını belirtmek üzere bir parametre ve eşleme için bir çözümleyici yöntemi içeren xsi:type çalışma zamanında bildirimleri.

System_CAPS_pubmethodReadObject(XmlReader)

XML akışı ile okur bir XmlReader ve seri durumdan çıkarılmış nesne döndürür.(XmlObjectSerializer.ReadObject(XmlReader) geçersiz kılar.)

System_CAPS_pubmethodReadObject(XmlReader, Boolean)

XML akışı ile okur bir XmlReader seri durumdan çıkarılmış nesne döndürür ve ayrıca değerini okumadan önce nesne adını doğrulamak için bir onay yapılır olup olmadığını belirtir.(XmlObjectSerializer.ReadObject(XmlReader, Boolean) geçersiz kılar.)

System_CAPS_pubmethodToString()

Geçerli nesneyi temsil eden bir dize döndürür.(Object kaynağından devralındı.)

System_CAPS_pubmethodWriteEndObject(XmlDictionaryWriter)

Kapatma Yazar XML öğesi kullanarak bir XmlDictionaryWriter.(XmlObjectSerializer.WriteEndObject(XmlDictionaryWriter) geçersiz kılar.)

System_CAPS_pubmethodWriteEndObject(XmlWriter)

Kapatma Yazar XML öğesi kullanarak bir XmlWriter.(XmlObjectSerializer.WriteEndObject(XmlWriter) geçersiz kılar.)

System_CAPS_pubmethodWriteObject(Stream, Object)

Nesnenin tam içeriği (başlatma, içerik ve son) XML belgesi veya belirtilen akışa Yazar Stream.(XmlObjectSerializer kaynağından devralındı.)

System_CAPS_pubmethodWriteObject(XmlDictionaryWriter, Object)

Nesnenin tam içeriği (başlatma, içerik ve son) XML belgesi veya belirtilen akışa Yazar XmlDictionaryWriter.(XmlObjectSerializer kaynağından devralındı.)

System_CAPS_pubmethodWriteObject(XmlDictionaryWriter, Object, DataContractResolver)

Tüm nesne verilerini (Başlangıç XML öğesi, içerik ve kapsayan öğesi) bir XML belgesi veya belirtilen XmlDictionaryWriter kullanarak akışına yazar. Eşleme için bir çözümleyici yöntemi içeren xsi:type çalışma zamanında bildirimleri.

System_CAPS_pubmethodWriteObject(XmlWriter, Object)

(XML öğesi, içerik ve kapatma öğesini başlayarak) tüm nesne verilerini bir XML belgesi veya akışa Yazar bir XmlWriter.(XmlObjectSerializer.WriteObject(XmlWriter, Object) geçersiz kılar.)

System_CAPS_pubmethodWriteObjectContent(XmlDictionaryWriter, Object)
System_CAPS_pubmethodWriteObjectContent(XmlWriter, Object)

XML içerik kullanarak Yazar bir XmlWriter.(XmlObjectSerializer.WriteObjectContent(XmlWriter, Object) geçersiz kılar.)

System_CAPS_pubmethodWriteStartObject(XmlDictionaryWriter, Object)

Açılış Yazar öğesi XML kullanarak bir XmlDictionaryWriter.(XmlObjectSerializer.WriteStartObject(XmlDictionaryWriter, Object) geçersiz kılar.)

System_CAPS_pubmethodWriteStartObject(XmlWriter, Object)

Açılış Yazar XML öğesi kullanarak bir XmlWriter.(XmlObjectSerializer.WriteStartObject(XmlWriter, Object) geçersiz kılar.)

Kullanım DataContractSerializer sınıfı seri hale getirmek ve bir XML akışı veya belge bir türün örneklerinin serisini kaldırmak için. Örneğin, adlı tür oluşturabilirsiniz Person bir ad ve adres gibi önemli veriler içeren özellikleri ile. Oluşturma ve işleme örneği Person sınıfı ve tüm özellik değerlerini bir XML belgesi sonraki alınması için veya bir XML akışı hemen taşıma için yazma. En önemli DataContractSerializer seri hale getirmek ve gönderilen veri serisini kaldırmak için kullanılan Windows Communication Foundation (WCF) iletileri. Geçerli DataContractAttribute sınıflar, öznitelik ve DataMemberAttribute Özellikler ve serileştirilen alanları belirtmek için sınıf üyeleri için öznitelik.

Şunun listesi için için bkz: seri hale getirilebilir türler Veri Sözleşmesi Seri Hale Getirici Tarafından Desteklenen Türler.

Kullanılacak DataContractSerializer, önce bir sınıf ve nesne örneğini biçimi; okuma veya yazma için uygun oluşturmak Örneğin, bir örneği XmlDictionaryWriter. Ardından çağırın WriteObject verileri kalıcı hale getirmek için yöntemi. Verileri almak için bir nesne veri biçimi okuma için uygun oluştur (gibi bir XmlDictionaryReader bir XML belgesi için) ve arama ReadObject yöntemi.

Daha fazla bilgi kullanarak DataContractSerializer, bkz: Seri Hale Getirme ve Seri Halden Çıkarma.

Kullanarak bir veri sözleşmesi seri hale getirici türü ayarlayabilirsiniz < dataContractSerializer > bir istemci uygulama yapılandırma dosyasında öğesi.

DataContractSerializer İle birlikte kullanılan DataContractAttribute ve DataMemberAttribute sınıfları. Bir sınıf seri hale getirme için hazırlamak için geçerli DataContractAttribute sınıfa. Seri hale getirmek istediğiniz verileri döndüren sınıfı her üyesi için geçerli DataMemberAttribute. Alanlar ve özellikler, Erişilebilirlik bağımsız olarak seri hale getirebilir: özel, korumalı, dahili, iç veya genel korumalı.

Örneğin, şemanızı belirtir bir Customer ile bir ID özelliği, ancak adlı tür kullanan var olan bir uygulama zaten Person ile bir Name özelliği. Sözleşmeyi uyan bir türü oluşturmak için önce uygulayın DataContractAttribute sınıfa. Daha sonra uygulamanızı DataMemberAttribute her alan veya seri hale getirmek istediğiniz özellik.

System_CAPS_noteNot

Uygulayabilirsiniz DataMemberAttribute özel ve genel üyeleri.

Son biçimi XML metin olması gerekmez. Bunun yerine, DataContractSerializer tarafından tanınan biçimine veri yazmanıza olanak tanıyan bir XML bilgi kümesi olarak verileri Yazar XmlReader ve XmlWriter. Kullanmanız önerilir XmlDictionaryReader ve XmlDictionaryWriter Okuma ve yazma hem de çalışmak için optimize edilmiş olduğundan, sınıflar DataContractSerializer.

Alanlar ve Özellikler serileştirme önce doldurulan bir sınıf oluşturuyorsanız veya seri durumundan çıkarma oluşursa, geri çağırma öznitelikleri açıklandığı gibi kullanın Sürüm Toleranslı Seri Hale Getirme Geri Çağrıları.

Seri hale getirme veya bir nesneyi seri durumdan çıkarmak olduğunda, bu türü "bilinen" için gerekli DataContractSerializer. Begin uygulayan bir sınıf örneğini oluşturarak IEnumerable<T> (gibi List<T>) ve bilinen türlerin koleksiyonuna ekleme. Ardından bir örneğini oluşturmak DataContractSerializer alan aşırı birini kullanarak IEnumerable<T> (örneğin, DataContractSerializer(Type, IEnumerable<Type>).

System_CAPS_noteNot

Diğer ilkel türler aksine DateTimeOffset Yapı değil bilinen bir türe varsayılan olarak, böylece el ile bilinen türleri listesine eklenmelidir (bkz: Veri Sözleşmesi Bilinen Türler).

DataContractSerializer Sözleşme gelecekteki sürümleri ile uyumlu olacak şekilde tasarlanmış veri sözleşmeleri bilir. Bu tür türleri uygulayan IExtensibleDataObject arabirimi. Arabirim Özellikleri ExtensionData döndüren özelliği bir ExtensionDataObject nesnesi.Daha fazla bilgi için bkz.İleri Uyumlu Veri Sözleşmeleri.

Seri durumundan çıkarma sırasında hedef nesnesi örneği oluşturulurken DataContractSerializer hedef nesnenin oluşturucusu çağırmaz. Yazıyorsanız, bir [DataContract] kısmi güven erişilebilen türü (diğer bir deyişle, ortak ve bir derlemede sahip AllowPartiallyTrustedCallers uygulanan öznitelik) ve güvenlikle ilgili bazı eylemler gerçekleştiren Oluşturucusu çağrılmaz farkında olmanız gerekir. Özellikle, aşağıdaki teknikleri çalışmaz:

  • İç veya özel Oluşturucu yaparak veya ekleyerek kısmi güven erişimi kısıtlamak denerseniz bir LinkDemand Oluşturucusu için--bunlar sahip kısmi güven altında seri durumundan çıkarma sırasında herhangi bir etkisi.

  • Oluşturucu çalıştırıldı varsayar sınıfı kod, sınıf yararlanılabilir bir geçersiz iç durumu alabilirsiniz.

Aşağıdaki kod örneği adlı tür gösterir Person tarafından seri DataContractSerializer. DataContractAttribute Özniteliği sınıfa uygulandığında ve DataMemberAttribute talimat üyelerine uygulanır DataContractSerializer ne serileştirmek.

namespace DataContractSerializerExample
{
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Runtime.Serialization;
    using System.Xml;

    // You must apply a DataContractAttribute or SerializableAttribute
    // to a class to have it serialized by the DataContractSerializer.
    [DataContract(Name = "Customer", Namespace = "http://www.contoso.com")]
    class Person : IExtensibleDataObject
    {
        [DataMember()]
        public string FirstName;
        [DataMember]
        public string LastName;
        [DataMember()]
        public int ID;

        public Person(string newfName, string newLName, int newID)
        {
            FirstName = newfName;
            LastName = newLName;
            ID = newID;
        }

        private ExtensionDataObject extensionData_Value;

        public ExtensionDataObject ExtensionData
        {
            get
            {
                return extensionData_Value;
            }
            set
            {
                extensionData_Value = value;
            }
        }
    }

    public sealed class Test
    {
        private Test() { }

        public static void Main()
        {
            try
            {
                WriteObject("DataContractSerializerExample.xml");
                ReadObject("DataContractSerializerExample.xml");

            }

            catch (SerializationException serExc)
            {
                Console.WriteLine("Serialization Failed");
                Console.WriteLine(serExc.Message);
            }
            catch (Exception exc)
            {
                Console.WriteLine(
                "The serialization operation failed: {0} StackTrace: {1}",
                exc.Message, exc.StackTrace);
            }

            finally
            {
                Console.WriteLine("Press <Enter> to exit....");
                Console.ReadLine();
            }
        }

        public static void WriteObject(string fileName)
        {
            Console.WriteLine(
                "Creating a Person object and serializing it.");
            Person p1 = new Person("Zighetti", "Barbara", 101);
            FileStream writer = new FileStream(fileName, FileMode.Create);
            DataContractSerializer ser =
                new DataContractSerializer(typeof(Person));
            ser.WriteObject(writer, p1);
            writer.Close();
        }

        public static void ReadObject(string fileName)
        {
            Console.WriteLine("Deserializing an instance of the object.");
            FileStream fs = new FileStream(fileName,
            FileMode.Open);
            XmlDictionaryReader reader =
                XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas());
            DataContractSerializer ser = new DataContractSerializer(typeof(Person));

            // Deserialize the data and read it from the instance.
            Person deserializedPerson =
                (Person)ser.ReadObject(reader, true);
            reader.Close();
            fs.Close();
            Console.WriteLine(String.Format("{0} {1}, ID: {2}",
            deserializedPerson.FirstName, deserializedPerson.LastName,
            deserializedPerson.ID));
        }
    }

Evrensel Windows Platformu
8 sonrasında kullanılabilir
.NET Framework
3.0 sonrasında kullanılabilir
Taşınabilir Sınıf Kitaplığı
Destekleyen: taşınabilir .NET platformları
Silverlight
2.0 sonrasında kullanılabilir
Windows Phone Silverlight
7.0 sonrasında kullanılabilir
Windows Phone
8.1 sonrasında kullanılabilir

Bu sınıfın örnekleri olan örnek uygulaması ile kullanıldığında dışında güvenli iş parçacığı IDataContractSurrogate veya DataContractResolver.

Başa dön
Show: