ServiceStack重命名SyncReply客户端

时间:2017-08-25 20:11:38

标签: c# visual-studio-2015 servicestack

我正在考虑使用ServiceStack Web服务代替现有的第三方Web服务。我已经匹配了第三方服务使用的DTO。但是,客户端期望一个名为" NotificationServiceClient"的代理类,如下所示:

var client = new NotificationService.NotificationServiceClient();
var response = client.SendNotification(message);

我无法更改客户端应用程序的源代码,因此我希望将ServiceStack配置为使用NotificationService作为客户端代理,而不是SyncReply。有没有办法做到这一点?

UPDATE - 我正在寻找的是一种配置ServiceStack的方法,以便为wsdl:service标记的name属性生成不同的值;从SyncReply到NotificationServiceClient。我可以保存当前的WSDL,手动操作它,并使用一次性客户端验证代理类名称。

2 个答案:

答案 0 :(得分:0)

不要使用ServiceStack's .NET Service Clients来使用第三方API,它们的设计和观点仅限于使用ServiceStack服务。

我们推荐用于调用第三方API的唯一HTTP客户端是HTTP Utils,这是我们的通用HTML客户端。

答案 1 :(得分:0)

根据mythz的评论,我在AppHost中覆盖了GenerateWsdl,并在wsdlTemplate上设置了ServiceName属性。这是一个例子:

public override string GenerateWsdl(WsdlTemplateBase wsdlTemplate)
{
    wsdlTemplate.ServiceName = "NotificationService";
    return base.GenerateWsdl(wsdlTemplate);
}