2016-09-14 142 views
0

我一直在创建一个动态的WCF服务来更新由XMLWriter手动创建的旧服务,我想将整个解决方案带到标准的WCF。创建动态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作为返回值的最佳答案是什么?

+0

如果我理解正确,服务接口是“动态的”。也就是说,一种方法可能是暴露界面的一部分,但是可能不是。那是你在说什么?请提供更多信息。 –

+0

实际上,该服务会加载数据库中可用存储过程的列表并公开服务,然后在调用服务后将调用数据库中的相关存储过程,然后服务必须返回从SP返回的数据集。 –

+0

服务必须有一个合约,所以你不能使用“动态”接口,你的方法应该有一个已知的回报。您可以返回像objeto或string这样的“通用”,但读取您的评论,因为您想要返回数据,可能wcf数据服务可以帮助您:https://msdn.microsoft.com/pt-br/library/cc668792( v = vs.110).aspx –

回答

0

搜索了一周后,我找到了解决方案来实现我想要的。
我写了一篇文章Create dynamic WCF service in C#这不是一个完整的答案,但它解决了我的问题。

希望你喜欢

+0

[是否只包含其他链接的答案真的是“好答案”?](http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links -elsewhere-真的好,答案) – CodeCaster