有没有一种动态生成或更新OperationContract的方法?
例如:
。
但是,我已经看到了这一点,但是,我不知道如何实现这一点,我只能在Visual上创建或生成OperationContract,而不能在服务已经托管的情况下运行。
请帮帮忙。
非常感谢
发布于 2011-03-20 09:45:35
可以使用System.Reflection动态生成程序集。请查看此链接:
http://www.williamb.net/defining-and-hosting-wcf-service-contracts-at-runtime
发布于 2011-03-20 10:17:52
这对于SOAP服务来说是不可能的。SOAP服务定义以WSDL形式公开的契约。一旦修改了服务,就必须让客户端知道更改的情况,因为客户端必须知道有新的操作,可能还有新传输的数据。反射不是一个选项,因为客户端通常无法访问服务=>客户端创建的程序集,因此不能通知新操作和新数据,这些操作和数据必须序列化和反序列化。
这可以通过REST服务来完成,因为在REST服务中,您正在定义可以通过其URI和HTTP方法访问的资源。但是,您必须再次通知客户端,新资源是可用的。这通常是通过浏览资源来实现的。您有顶级资源,其中包含有关其他资源及其URI的信息。您只需将新资源的URI添加到主资源中。当前版本的WCF使这种方法非常复杂,因为您考虑的是资源,但仍然必须在操作方面工作。
我仍然不明白为什么人们仍然试图以这种方式构建动态应用程序。按下按钮和添加新的方法将是如此复杂。也许,如果你修改你的问题,并解释你想做什么,你会得到更好的想法如何实现这一点。
https://stackoverflow.com/questions/5367690
复制相似问题