是否可以在“自适应”路由服务中创建“通用”,它不会有任何公共方法来调用。相反,您可以调用任何命令,然后将其映射到服务中,并在需要时通过简单的消息转换将其传递到适当的端点。 这可能很难理解,想法可能看起来有点疯狂(它来自我的同事),但如果你看一下这个例子就更清楚了:
与this article中描述的类似,唯一的区别是我们的服务不应该有“SubmitTimeSheet”公共方法,实际上它应该没有公共方法来调用。在返回“找不到方法”错误之前,我们必须在较低级别“拦截”来电。
这一切都可能吗?原因很明显:无需更改代码即可添加新客户端。我们所要做的就是在某种配置文件甚至数据库中添加新的映射条目,例如。
<Client address="newClientAddress" method="DoAnything" transformation="NewClientDoAnything.xslt" endPoint="endPointClientAddress" endPointMethod="endPointClientDoAnything" />
答案 0 :(得分:2)
查看WCF 4路由 - 支持基于内容的路由,xpath转换等等。
答案 1 :(得分:0)
他们已经在Nirvana完成了这项工作。但它非常昂贵。
这在WCF中是不可能的,除非您将合同定义为一个非常宽松,适合所有合同,它接收消息并返回消息。通过这样做,你将失去WCF的所有优点(虽然在WCF中不是很好)。