2016-08-01 9 views
2

私はこのSOAPをVisual Studioを使用して.NET Webアプリケーションで使用しようとしています。.xsdスキーマをパラメータとして使用するSOAP Webserviceの使用方法

私のwsdlには2つの方法しか記述されていないのは私の質問です。 'processMessage'と 'processOCIMessage'そして、彼らが期待するメッセージは、30種類のxsdスキーマに適合する文字列です。APIを使用する最良の方法は何ですか?

たとえば、いくつかのユーザー情報を取得する場合は、私は、このスキーマに合った文字列を記述する必要があります。

<xs:complexType name="UserGetRequest19"> 
    <xs:annotation> 
     <xs:documentation> 
     Request to get the user information. The response is either 
     UserGetResponse19 or ErrorResponse. 
     </xs:documentation> 
    </xs:annotation> 
    <xs:complexContent> 
     <xs:extension base="core:OCIRequest"> 
     <xs:sequence> 
      <xs:element name="userId" type="UserId"/> 
     </xs:sequence> 
     </xs:extension> 
    </xs:complexContent> 
    </xs:complexType> 

私はanswer to this questionで説明したように、単純なパラメータに渡す方法を知っています。しかし、どのように私はスキーマでそれを行うのですか?

Visual Studioに、これらをユーザーフレンドリーなC#クラス/モデルに変換するツールはありますか?または、手動でXML文字列を入力し、特殊文字をエスケープし、パラメータとして 'processMessage'に渡す必要がありますか?

答えて

1

まず、組み込みツールを使用して、WSDLから開始するVisual Studio Web参照を追加します。これにより、クライアント側のプロキシとデータ転送クラスが作成されます。文字列としてprocessMessageReturnのプロパティを持つクラスと、processOCIMessageReturnのプロパティを持つ別のクラスを文字列として取得します。

xsd.exeからXSDを実行し、/cスイッチを使用してクラスを生成します。

そこから、2番目の手順で作成したクラスをインスタンス化して設定するコードを記述する必要があります。 XmlSerializerを使用して "トップ"クラスを文字列にシリアライズし、その文字列を最初の手順で説明したプロパティに割り当てます。 XMLをテキストノードとしてエンコードすることについては心配する必要はありません。これは、フレームワークに組み込まれているXMLシリアライザによって注意が払われるためです。

関連する問題