与多个web服务动态通信

本文关键字:动态 通信 服务 web | 更新日期: 2023-09-27 17:58:40

我正在寻求一些关于如何完成我现有工作的建议。基本上,我有多个采用相同方法和参数的Web服务。总是必须获得代理类,并在接受新的提供程序时更改代码,这是一件痛苦的事情。我正在寻找能够在配置中添加Web服务URL的方法,并在运行时能够编译生成代理类并与远程机器动态通信。

举个例子:我必须将数据发送到一个名为UpdateCustomers的方法(int id,string name,string surface,DateTime DateofBirth)到提供者,如果我们决定使用提供者a,则可以将配置中的Web服务url更改为指向a,或者当我们决定更改为B等时…

Web服务是.asmx或.svc

我在寻求提示和建议。

问候

与多个web服务动态通信

听起来像是WCF路由的工作。

根据您想要如何路由呼叫,您可以定义消息过滤器,用于评估传入呼叫是否满足一组标准,例如,soap有效负载中的某个值设置为特定值:

<filters>
    <filter name="myXPathFilter1" 
            filterType="XPath" 
            filterData="//valueIWantToFilterOn = somevalue"/>
</filters>

然后,您可以注册过滤器以映射到特定的端点:

<filterTables>
    <table name="myRoutingTable">
        <filters>
           <add filterName="myXPathFilter1" endpointName="UpdateCustomers1" />
           <add filterName="myXPathFilter2" endpointName="UpdateCustomers2" />
           ...
        </filters>
    </table>
</filterTables>