我想了解基本机制:据我所知.net解析wsdl(使用ServiceDescription类)并生成将进行调用的代理类。
但是这些代理类是如何生成的呢?通过CodeDom或其他什么?
答案 0 :(得分:1)
从元数据生成代理类。通常,服务会公开它的公共合同和元数据合同。
在WCF服务中,元数据将以类似
的方式公开<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
您可以详细了解元数据标准here和WCF import-export metadata docs。
如果没有公开元数据合同,则无法生成代理。
答案 1 :(得分:1)
我用dotPeek反编译了wsdl.exe,据我所知,它使用CodeDomProvider进行代码生成。这就是GenerateCode
方法签名的样子。
private void GenerateCode(DiscoveryClientDocumentCollection[] documents,
CodeDomProvider codeProvider, WsdlParameters parameters, string outputFileName)
{
...
}