Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想了解基本机制:据我所知.net 解析 wsdl(使用 ServiceDescription 类)并生成将进行调用的代理类。
但是这些代理类是如何生成的呢?通过 CodeDom 或其他方式?
代理类是从元数据生成的。通常,服务会公开它的公共合约和元数据合约。
在 WCF 服务中,元数据将通过类似的方式公开
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
您可以在此处阅读有关元数据标准的更多信息,以及 WCF导入导出元数据文档。
如果没有公开元数据合约,则无法生成代理。
我用 dotPeek 反编译了 wsdl.exe,据我所知,它使用 CodeDomProvider 进行代码生成。这就是GenerateCode方法签名的样子。
GenerateCode
private void GenerateCode(DiscoveryClientDocumentCollection[] documents, CodeDomProvider codeProvider, WsdlParameters parameters, string outputFileName) { ... }