【发布时间】:2013-11-12 20:24:11
【问题描述】:
嗯,我想根据条件生成不同的 WSDL,我的意思是隐藏一些方法,保留所有复杂类型,只显示或隐藏一些方法。
我的问题
有什么方法可以获取 URL 上的一些参数以获取 wsdl,然后评估参数并渲染自定义 WSDL?
示例 host.dev/myservice.wsdl?param=role1 并通过反射删除一些属性,这些方法在执行时隐藏。
问题 我的服务有很多客户端,他们用来获取 wsdl 以使客户端不用于消费,他们只是让 wsdl 指向原点,并不是所有的都需要所有方法,这只是为了给他们一个干净的解决方案。
提前致谢。
【问题讨论】:
-
你真的想这样做吗?基本上 WSDL 是一个接口定义,一个应该尽可能静态和不可变的契约。也许应用某种安全性(访问票的额外参数?)是使方法可访问或不可访问的更好方法。
-
如果你能解释你原来的问题 X 真的很有帮助,所以我们可以帮助评估你的 solution Y 是否真的是解决 X 的最佳方法。例如,如果你认为你的服务暴露了太多方法,它可能会这样做,您可以更好地将其拆分为多个服务,每个业务领域一个。
-
“并不是所有的都需要所有方法” - 所以,就像说的那样,创建单独的服务。
标签: .net web-services soap