1

我想了解基本机制:据我所知.net 解析 wsdl(使用 ServiceDescription 类)并生成将进行调用的代理类。

但是这些代理类是如何生成的呢?通过 CodeDom 或其他方式?

4

2 回答 2

1

代理类是从元数据生成的。通常,服务会公开它的公共合约元数据合约。

在 WCF 服务中,元数据将通过类似的方式公开

<endpoint address="mex" 
    binding="mexHttpBinding" 
    contract="IMetadataExchange"/>

您可以在此处阅读有关元数据标准的更多信息,以及 WCF导入导出元数据文档

如果没有公开元数据合约,则无法生成代理。

于 2013-05-18T11:46:46.850 回答
1

我用 dotPeek 反编译了 wsdl.exe,据我所知,它使用 CodeDomProvider 进行代码生成。这就是GenerateCode方法签名的样子。

  private void GenerateCode(DiscoveryClientDocumentCollection[] documents, 
     CodeDomProvider codeProvider, WsdlParameters parameters, string outputFileName)
  {
   ...    
  }
于 2013-05-18T12:30:12.917 回答