2

これがアマチュアの質問である場合はお詫び申し上げます。既存のASMXWebサービスを変更する必要があります。問題は、Webサービスが生成する応答を変更する必要があることです。以下は、現在の応答の例です。

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" mlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <InsertCaseShortResponse xmlns="http://website.com/Service/">
      <InsertCaseShortResult>50314</InsertCaseShortResult>
    </InsertCaseShortResponse>
  </soap:Body>
</soap:Envelope>

InsertCaseShortResultは、成功した場合は一意の参照番号を返し、失敗した場合はエラーメッセージを返します。私がする必要があるのは、挿入が成功したかどうかに関して真または偽のフラグを与える別の応答タグを追加することです。Webサービスの応答がどのように構築されるかについては、どこにも多くの情報を見つけることができませんでした。ここで基本的な要素が欠落していると思います。

どんな考えでも大歓迎です。

4

1 に答える 1

3

「レガシー」とは、ASMXWebサービスを意味すると思います。

WSDLに基づいて、Webサービスのサーバー側コードに次のようなものがあるようです。

[WebMethod]
public int InsertCaseShort(/* params here */)
{
    int result;

    /* Code here */

    return result;
}

フィールドを追加するには、整数値ではなくクラス参照を返す必要があります。

例:

public class InsertCaseShortResult
{
    public int StatusCode { get; set; }
    public bool Successful { get; set; }
}

そしてあなたのWebMethodで:

[WebMethod]
public InsertCaseShortResult InsertCaseShort(/* params here */)
{
    var result = new InsertCaseShortResult();

    /* Code here */

    return result;
}

他にご不明な点がございましたら、お気軽にお問い合わせください。

于 2012-05-22T12:30:00.050 に答える