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 のインタビューを読むことをお勧めします。