有没有办法动态生成或更新OperationContract?
例如:
我已经看到,在行动中,但是,我不知道如何实现这一点,我只能在Visual Studio上创建或生成OperationContract,但在服务已经托管时不能动态
请帮忙。
非常感谢
答案 0 :(得分:0)
您可以使用System.Reflection动态构建程序集。检查此链接:
http://www.williamb.net/defining-and-hosting-wcf-service-contracts-at-runtime
答案 1 :(得分:0)
这对SOAP服务是不可能的。 SOAP服务定义作为WSDL公开的契约。修改服务后,必须让客户知道更改,因为客户端必须知道有新操作,可能还有新传输的数据。反射不是一种选择,因为客户通常无法访问由service =>创建的程序集。客户端无法通知必须序列化和反序列化的新操作和新数据。
这可以通过REST服务来完成,因为在REST服务中,您正在定义可通过其URI和HTTP方法访问的资源。但是,您必须再次通知客户端新资源可用。这通常通过浏览资源来实现。您拥有顶级资源,其中包含有关其他资源及其URI的信息。您只需将新资源的URI添加到主资源中。当前版本的WCF使得这种方法非常复杂,因为您考虑的是资源,但仍需要在操作方面工作。
我仍然不明白为什么人们仍然试图以这种方式构建动态应用程序。按下按钮并添加新方法将非常复杂。也许如果你修改你的问题并解释你想做什么,你会得到更好的想法如何实现。