是否可以像“自适应”路由服务那样创建一个“通用”的路由服务,它将没有任何公共方法可供调用。相反,您可以调用任何命令,然后将其映射到服务中,并在需要时通过简单的消息转换将其传递到适当的端点。这可能很难理解,想法可能看起来有点疯狂(它来自我的一个同事),但如果你看一下例子,它就会更清楚:

与this article中描述的类似,唯一的区别是我们的服务不应该有"SubmitTimeSheet“公共方法,实际上它不应该有公共方法可供调用。在它返回“找不到方法”错误之前,我们必须“拦截”一个更低级别的传入调用。
这有可能吗?原因很明显:可以在不更改代码的情况下添加新客户端。我们所要做的就是在某种配置文件甚至数据库中添加一个新的映射条目,例如
<Client address="newClientAddress" method="DoAnything" transformation="NewClientDoAnything.xslt" endPoint="endPointClientAddress" endPointMethod="endPointClientDoAnything" />发布于 2011-04-12 21:27:30
他们已经在Nirvana中这样做了。但是它非常昂贵。
这在WCF中是不可能的,除非您将您的约定定义为一个非常松散的、适合所有人的约定,它接受一条消息并返回一条消息。通过这样做,您将失去WCF的所有优点(虽然在WCF中不是很好)。
发布于 2011-05-05 08:45:49
查看WCF4路由-支持基于内容的路由、xpath转换等。
http://blogs.msdn.com/b/routingrules/
https://stackoverflow.com/questions/5635877
复制相似问题