NetDataContractSerializer.WriteStartObject 方法

定義

使用指定的寫入器寫入開頭 XML 項目。

多載

WriteStartObject(XmlDictionaryWriter, Object)

使用 XmlDictionaryWriter 寫入開頭 XML 項目。

WriteStartObject(XmlWriter, Object)

使用 XmlWriter 寫入開頭 XML 項目。

WriteStartObject(XmlDictionaryWriter, Object)

使用 XmlDictionaryWriter 寫入開頭 XML 項目。

public:
 override void WriteStartObject(System::Xml::XmlDictionaryWriter ^ writer, System::Object ^ graph);
public override void WriteStartObject (System.Xml.XmlDictionaryWriter writer, object graph);
override this.WriteStartObject : System.Xml.XmlDictionaryWriter * obj -> unit
Public Overrides Sub WriteStartObject (writer As XmlDictionaryWriter, graph As Object)

參數

writer
XmlDictionaryWriter

用於寫入 XML 項目的 XmlDictionaryWriter

graph
Object

要序列化的物件。 這個根物件的所有子物件都會自動序列化。

例外狀況

正在序列化的型別不符合資料合約規則。 例如,DataContractAttribute 屬性尚未套用至此型別。

正在序列化的執行個體發生問題。

已超過要序列化的物件數目上限。 檢查 MaxItemsInObjectGraph 屬性。

範例

下列範例會建立要序列化的物件、NetDataContractSerializer 的執行個體和 XmlDictionaryWriter 類別的執行個體。 這個範例使用 WriteStartObjectWriteObjectContentWriteEndObject 方法,將物件資料寫入 XML 文件。

public sealed class ShowWriteStartObject
{

    public static void WriteObjectData(string path)
    {
        // Create the object to serialize.
        Person p = new Person("Lynn", "Tsoflias", 9876);

        // Create the writer.
        FileStream fs = new FileStream(path, FileMode.Create);
        XmlDictionaryWriter writer =
            XmlDictionaryWriter.CreateTextWriter(fs);

        NetDataContractSerializer ser =
            new NetDataContractSerializer();

        // Use the writer to start a document.
        writer.WriteStartDocument(true);

        // Use the serializer to write the start of the
        // object data. Use it again to write the object
        // data.
        ser.WriteStartObject(writer, p);
        ser.WriteObjectContent(writer, p);

        // Use the serializer to write the end of the
        // object data. Then use the writer to write the end
        // of the document.
        ser.WriteEndObject(writer);
        writer.WriteEndDocument();

        Console.WriteLine("Done");

        // Close and release the writer resources.
        writer.Flush();
        fs.Flush();
        fs.Close();
    }
NotInheritable Public Class ShowWriteStartObject
     
    Public Shared Sub WriteObjectData(ByVal path As String) 
        ' Create the object to serialize.
        Dim p As New Person("Lynn", "Tsoflias", 9876)
        
        ' Create the writer.
        Dim fs As New FileStream(path, FileMode.Create)
        Dim writer As XmlDictionaryWriter = XmlDictionaryWriter.CreateTextWriter(fs)
        
        Dim ser As New System.Runtime.Serialization.NetDataContractSerializer()        

        ' Use the writer to start a document.
        writer.WriteStartDocument(True)
        
        ' Use the serializer to write the start of the 
        ' object data. Use it again to write the object
        ' data. 
        ser.WriteStartObject(writer, p)
        writer.WriteStartAttribute("MyAttribute")
        writer.WriteString("My Text")
        writer.WriteEndAttribute()

        ser.WriteObjectContent(writer, p)
                
        ' Use the serializer to write the end of the 
        ' object data. Then use the writer to write the end
        ' of the document.
        ser.WriteEndObject(writer)
        writer.WriteEndDocument()
        
        Console.WriteLine("Done")
        
        ' Close and release the writer resources.
        writer.Flush()
        fs.Flush()
        fs.Close()
    
    End Sub

適用於

WriteStartObject(XmlWriter, Object)

使用 XmlWriter 寫入開頭 XML 項目。

public:
 override void WriteStartObject(System::Xml::XmlWriter ^ writer, System::Object ^ graph);
public override void WriteStartObject (System.Xml.XmlWriter writer, object graph);
override this.WriteStartObject : System.Xml.XmlWriter * obj -> unit
Public Overrides Sub WriteStartObject (writer As XmlWriter, graph As Object)

參數

writer
XmlWriter

用於寫入 XML 項目的 XmlDictionaryWriter

graph
Object

要序列化的物件。 這個根物件的所有子物件都會自動序列化。

例外狀況

正在序列化的型別不符合資料合約規則。 例如,DataContractAttribute 屬性尚未套用至此型別。

正在序列化的執行個體發生問題。

已超過要序列化的物件數目上限。 檢查 MaxItemsInObjectGraph 屬性。

適用於