方法 : オブジェクトを SOAP エンコード済み XML ストリームとしてシリアル化する

コード例

SOAP メッセージは XML を使用して作成されるため、XmlSerializer を使用してクラスをシリアル化し、エンコード済みの SOAP メッセージを生成できます。生成される XML は、W3C (World Wide Web Consortium) (www.w3.org) のドキュメント『Simple Object Access Protocol (SOAP) 1.1』のセクション 5 に準拠します。SOAP メッセージを使用して通信を行う XML Web サービスを作成する場合、特殊な SOAP 属性のセットをクラスやクラスのメンバに適用することで、生成される XML ストリームをカスタマイズできます。属性の一覧については、「エンコード済み SOAP シリアル化を制御する属性」を参照してください。

オブジェクトを SOAP エンコード済み XML ストリームとしてシリアル化するには

  1. XML スキーマ定義ツール (Xsd.exe) を使用して、クラスを作成します。

  2. System.Xml.Serialization の特別な属性を 1 つ以上適用します。「エンコード済み SOAP シリアル化を制御する属性」の一覧を参照してください。

  3. 新しい SoapReflectionImporter を作成し、シリアル化されるクラスの型を使用して ImportTypeMapping メソッドを呼び出して、XmlTypeMapping を作成します。

    SoapReflectionImporter クラスの ImportTypeMapping メソッドを呼び出して XmlTypeMapping を作成するコード例を次に示します。

    ' Serializes a class named Group as a SOAP message.
    Dim myTypeMapping As XmlTypeMapping = (New SoapReflectionImporter(). _
    ImportTypeMapping(GetType(Group))
    
    // Serializes a class named Group as a SOAP message.
    XmlTypeMapping myTypeMapping = (new SoapReflectionImporter().
    ImportTypeMapping(typeof(Group));
    
  4. XmlTypeMappingXmlSerializer コンストラクタに渡して、XmlSerializer クラスのインスタンスを作成します。

    Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)
    
    XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);
    
  5. Serialize メソッドまたは Deserialize メソッドを呼び出します。

' Serializes a class named Group as a SOAP message.
Dim myTypeMapping As XmlTypeMapping = (New SoapReflectionImporter(). _
ImportTypeMapping(GetType(Group))
Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)
// Serializes a class named Group as a SOAP message.
XmlTypeMapping myTypeMapping = (new SoapReflectionImporter().ImportTypeMapping(typeof(Group));
XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);

関連項目

タスク

方法 : オブジェクトをシリアル化する
方法 : オブジェクトを逆シリアル化する
方法 : SOAP エンコード済み XML シリアル化をオーバーライドする

概念

エンコード済み SOAP シリアル化を制御する属性
XML Web サービスを使用した XML シリアル化

その他の技術情報

XML シリアル化および SOAP シリアル化

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.