在 C#.Net Windows 应用程序中使用 WSO2 数据服务
本文关键字:WSO2 数据 服务 Net Windows 应用程序 | 更新日期: 2023-09-27 18:33:43
我正在尝试将'WSO2数据服务服务器'上创建的服务使用到本地.NET客户端(Windows应用程序)中。我能够与服务通信(我能够列出这些服务提供的操作)。但是当我尝试调用方法应用程序时会抛出以下错误。
来自命名空间"XYZ"的 XML 元素 'ABCD' 引用方法和类型。使用 WebMethodAttribute 更改方法的消息名称,或使用XmlRootAttribute。
我刚刚通过视觉工作室向Windows应用程序添加了服务引用,并尝试调用方法
任何人都可以提供逐步解决上述问题的过程吗?
当您对
数据服务配置中的操作和元素使用相同的名称时,会发生这种情况。添加服务引用时,在 VS 中创建代理无法区分类型和方法。是否可以尝试在数据服务配置中为操作和其他 XML 属性指定不同的名称?如果仍然不起作用,请发布您的数据服务配置。
除了为结果集指定不同的名称之外,还有其他解决方案吗?
如果我在 Web 服务中有 3 个方法并且所有方法都导出相同的方法
然后,例如将它们重命名为客户 1、客户 2 和客户 3 对我来说感觉不自然
这是我在 .NET 中导致问题的示例,因为有 3 种方法都返回条目>条目
<data name="ws_getSubnoCCInfo" serviceNamespace="com.test.ws">
<config id="tro">
<property name="driverClassName">oracle.jdbc.driver.OracleDriver</property>
<property name="url">jdbc:oracle:thin:xxx/yyy@10.10.10.10:1521/DB</property>
<property name="username">xxx</property>
<property name="password">yyy</property>
</config>
<query id="subnoHasCCSQL" useConfig="tro">
<sql>select case when count(*) > 0 then 'OK' else 'NOK' end hasCC from ccinfo where subno = :subno</sql>
<result element="Entries" rowName="Entry">
<element column="hasCC" name="hasCC" xsdType="string"/>
</result>
<param name="subno" sqlType="STRING"/>
</query>
<query id="idNoHasCCSQL" useConfig="tro">
<sql>select case when count(*) > 0 then 'OK' else 'NOK' end hasCC from ccinfo cc, tabs.crm_departement ui where cc.contrno = ui.contrno and ui.id_no = :id_no</sql>
<result element="Entries" rowName="Entry">
<element column="hasCC" name="hasCC" xsdType="string"/>
</result>
<param name="id_no" sqlType="STRING"/>
</query>
<query id="contrnoHasCCSQL" useConfig="tro">
<sql>select case when count(*) > 0 then 'OK' else 'NOK' end hasCC from ccinfo cc where contrno = :contrno</sql>
<result element="Entries" rowName="Entry">
<element column="hasCC" name="hasCC" xsdType="string"/>
</result>
<param name="contrno" sqlType="STRING"/>
</query>
<operation name="subnoHasCC">
<call-query href="subnoHasCCSQL">
<with-param name="subno" query-param="subno"/>
</call-query>
</operation>
<operation name="idNoHasCC">
<call-query href="idNoHasCCSQL">
<with-param name="id_no" query-param="id_no"/>
</call-query>
</operation>
<operation name="contrnoHasCC">
<call-query href="contrnoHasCCSQL">
<with-param name="contrno" query-param="contrno"/>
</call-query>
</operation>
</data>