我们将根据运行时读取的元数据构建一个 Web 服务。我指的是整个网络服务:签名、合同和实施。
从这里我看到有两条主要路径。
第一条路径是生成代码。您可以在字符串中生成 C# 代码并即时编译它,或者更优雅(且复杂)地发出 MSIL 代码。这样您就拥有了 WCF 代码,WCF 将负责从中生成 WSDL。
第二条途径是使用通用服务。具有接受所有内容的操作消息进程(消息)的服务。我们仍然希望将服务公开为“普通”服务,因此我需要在某个地方使用 WSDL。如何创建 WSDL?我考虑过使用 System.ServiceModel.Description,直到我意识到,在内心深处,这个 API 依赖于具体类型。通过这种方法,我们不会有任何数据协定类型,并且可以动态处理 XML,使用元数据来解释它。因此我们需要以某种方式生成 WSDL。这是一个疯狂的想法吗?WSDL 有一个相当复杂的规范...
第三种选择是使用混合方法,发出类型只是为了创建签名,但使用非发出代码(反映发出的类型)来实现服务。很奇怪,但可能比手工制作 WSDL 更简单......
建议?