我正在考虑使用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,手动操作它,并使用一次性客户端验证代理类名称。
答案 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);
}