4

ServiceStack と相互通信するクライアント/サーバー アプリケーションを作成していますが、うまく機能していますが、外部の SOAP Web サービスにもアクセスする必要があります。

を使用しSoap12ServiceClientてアクセスしようとしましたが、例が見つかりませんでした。次に、実際に機能するサービス参照の追加 WCF の方法に進みましたが、大量のコードを作成しました。

メッセージ/リクエストを送信し、メッセージ/レスポンスを受信するSoap12ServiceClientのと同じ簡単な方法で使用できますか? JsonServiceClientもしそうなら、助けてくれるか、サンプルを教えてもらえますか?

4

1 に答える 1

1

ServiceStack の C# サービス クライアントはすべて同じように実装されているため、同じIServiceClientように使用できるため、どこで立ち往生しているのかわかりません。以下は、同じ Hello World サービスを呼び出すすべての ServiceStack の組み込み C# サービス クライアントの例です。

[TestFixture]
public class HelloWorldServiceClientTests
{
    public static IEnumerable ServiceClients
    {
        get
        {
            return new IServiceClient[] {
                new JsonServiceClient(Config.ServiceStackBaseUri),
                new JsvServiceClient(Config.ServiceStackBaseUri),
                new XmlServiceClient(Config.ServiceStackBaseUri),
                new Soap11ServiceClient(Config.ServiceStackBaseUri),
                new Soap12ServiceClient(Config.ServiceStackBaseUri)
            };
        }
    }

    [Test, TestCaseSource("ServiceClients")]
    public void HelloWorld_with_Sync_ServiceClients(IServiceClient client)
    {
        var response = client.Send<HelloResponse>(new Hello { Name = "World!" });

        Assert.That(response.Result, Is.EqualTo("Hello, World!"));
    }
}

SOAP は他の C# クライアントと同様に機能しますが、一般的な C# SOAP サービス クライアントを使用できる場合は、他のサービス クライアントも使用できる可能性が高いため、この方法で使用することは一般的ではありません。 SOAP よりも高速で、回復力があり、バージョン管理が可能です。とにかくやりたくないと言ったクライアント プロキシを生成する機能以外に、他の形式よりも効果的な品質はありません。

どのエンドポイントまたはフォーマットを使用するべきかわからない場合は、SOAP の欠点と他のフォーマットを使用する利点について説明しているInfoQ のインタビューを読むことをお勧めします。

于 2013-03-14T22:57:22.610 に答える