次の方法で共有


DataContractSerializer.WriteEndObject メソッド

定義

指定したライターを使用して、XML の終了要素を書き込みます。

オーバーロード

WriteEndObject(XmlDictionaryWriter)

XmlDictionaryWriter を使用して、XML の終了要素を書き込みます。

WriteEndObject(XmlWriter)

XmlWriter を使用して、XML の終了要素を書き込みます。

WriteEndObject(XmlDictionaryWriter)

ソース:
DataContractSerializer.cs
ソース:
DataContractSerializer.cs
ソース:
DataContractSerializer.cs

XmlDictionaryWriter を使用して、XML の終了要素を書き込みます。

public:
 override void WriteEndObject(System::Xml::XmlDictionaryWriter ^ writer);
public override void WriteEndObject (System.Xml.XmlDictionaryWriter writer);
override this.WriteEndObject : System.Xml.XmlDictionaryWriter -> unit
Public Overrides Sub WriteEndObject (writer As XmlDictionaryWriter)

パラメーター

writer
XmlDictionaryWriter

ストリームを書き込むために使用する XmlDictionaryWriter

例外

シリアル化される型がデータ コントラクト規則に準拠していません。 たとえば、DataContractAttribute 属性が型に適用されていません。

書き込まれているインスタンスに問題があります。

次の例では、シリアル化するオブジェクト、DataContractSerializer のインスタンス、および XmlDictionaryWriter クラスのインスタンスを作成しています。 この例では、XML ドキュメントにオブジェクト データを書き込むために、WriteStartObject メソッド、WriteObjectContent、および WriteObjectContent メソッドを使用します。 これらの呼び出しを行うことは、WriteObject メソッドを 1 回呼び出すのと同じです。 たとえば、WriteStartObject メソッドを呼び出した後、XML に XML 属性を挿入する呼び出しを別に行うことができます。

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

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

    DataContractSerializer ser =
        new DataContractSerializer(typeof(Person));

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

    // Use the writer to write the root element.
    writer.WriteStartElement("Company");

    // Use the writer to write an element.
    writer.WriteElementString("Name", "Microsoft");

    // Use the serializer to write the start,
    // content, and end data.
    ser.WriteStartObject(writer, p);
    ser.WriteObjectContent(writer, p);
    ser.WriteEndObject(writer);

    // Use the writer to write the end element and
    // the end of the document.
    writer.WriteEndElement();
    writer.WriteEndDocument();

    // Close and release the writer resources.
    writer.Flush();
    fs.Flush();
    fs.Close();
}
Public Shared Sub WriteObjectContentInDocument(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 DataContractSerializer(GetType(Person))
    
    ' Use the writer to start a document.
    writer.WriteStartDocument(True)
    ' Use the writer to write the root element.
    writer.WriteStartElement("Company")
    ' Use the writer to write an element.
    writer.WriteElementString("Name", "Microsoft")

    ' Use the serializer to write the start,
    ' content, and end data.
    ser.WriteStartObject(writer, p)
    ser.WriteObjectContent(writer, p)
    ser.WriteEndObject(writer)
    
    ' Use the writer to write the end element and
    ' the end of the document.
    writer.WriteEndElement()
    writer.WriteEndDocument()
    
    ' Close and release the writer resources.
    writer.Flush()
    fs.Flush()
    fs.Close()

End Sub

適用対象

WriteEndObject(XmlWriter)

ソース:
DataContractSerializer.cs
ソース:
DataContractSerializer.cs
ソース:
DataContractSerializer.cs

XmlWriter を使用して、XML の終了要素を書き込みます。

public:
 override void WriteEndObject(System::Xml::XmlWriter ^ writer);
public override void WriteEndObject (System.Xml.XmlWriter writer);
override this.WriteEndObject : System.Xml.XmlWriter -> unit
Public Overrides Sub WriteEndObject (writer As XmlWriter)

パラメーター

writer
XmlWriter

ストリームを書き込むために使用する XmlWriter

例外

シリアル化される型がデータ コントラクト規則に準拠していません。 たとえば、DataContractAttribute 属性が型に適用されていません。

書き込まれているインスタンスに問題があります。

適用対象