【发布时间】:2016-09-14 10:12:51
【问题描述】:
我一直坚持创建动态 WCF 服务来更新由 XMLWriter 手动创建的旧服务,我想将整个解决方案引入标准 WCF。
我在ingebrigtsen.info 上找到了创建动态服务的解决方案,但问题是旧服务具有将结果作为记录数组返回的方法,但在此解决方案中,我必须将常量类型定义为返回类型,我甚至无法创建静态记录类型,因为有许多运行时生成的方法具有不同的属性集。
<soap:Body>
<getcdrResponse xmlns="http://tempuri.org/">
<getcdrResult>
<_SID>16111250</_SID>
<Destination>9392191436</Destination>
<callTime>0</callTime>
<pulse>19</pulse>
<Duration>19</Duration>
<price>0</price>
<Name>test</Name>
</getcdrResult>
<getcdrResult>
.....
我认为有一种方法可以在输出上编写检查器,但我不知道这是否是答案。
我的问题是:在动态创建的 WCF 方法中将动态 ResultSet 作为返回的最佳答案是什么?
【问题讨论】:
-
如果我理解正确的话,服务接口是“动态的”。也就是说,一个方法可能是暴露接口的一部分,但话又说回来,它可能不是。这就是你说的吗?请提供更多信息。
-
其实服务在数据库中加载一个可用存储过程的列表,并暴露一个公共服务,然后调用该服务后会调用数据库中相关的存储过程,然后服务必须返回从SP返回的DataSet。
-
服务必须有一个契约,所以你不能使用“动态”接口,你的方法应该有一个已知的返回。你可以返回一些“通用”的东西,比如对象或字符串,但是阅读你的评论,因为你想返回数据,wcf 数据服务可以帮助你:msdn.microsoft.com/pt-br/library/cc668792(v=vs.110).aspx
标签: c# web-services wcf soap wsdl