我不確定你卡在哪裏,因爲所有的ServiceStack's C# Service Clients實現相同的IServiceClient
,所以他們可以用同樣的方式。這裏是所有的例子ServiceStack內置的C#服務客戶端calling the same Hello World service:
[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更快速,更具彈性且更具可版本化 - 除了其能力之外,其他格式實際上沒有兌換質量生成客戶代理,你說你不想做任何事情。
如果您不確定您應該使用哪種端點或格式I recommend reading my Interview on InfoQ,其中討論了SOAP的缺點以及使用其他格式的好處。
舊的問題,但我有興趣做同樣的事情 - 使用ServiceStack的SOAP客戶端調用外部SOAP端點,而不必使用Visual Studio的臃腫,生成的代理。經過一些試驗和錯誤之後,我注意到ServiceStack的Soap11ServiceClient和Soap12ServiceClient具有硬編碼的「/ Soap11」和「/ Soap12」端點。所以,不幸的是,這是不可能的。 – PatrickSteele 2015-05-22 18:44:43