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

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

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

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

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

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

    ImportTypeMapping クラスの SoapReflectionImporter メソッドを呼び出して 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. XmlSerializerXmlTypeMapping コンストラクターに渡して、XmlSerializer(XmlTypeMapping) クラスのインスタンスを作成します。

    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);  

関連項目