我有一个WCF服务,其中的方法很多如下所示。现在,我知道<summary>
信息没有公开,但我如何才能公开这些信息,以便消费者获得intellisense中的信息?
/// <summary>
/// Obtains a list of agreements for a given dealer
/// </summary>
/// <param name="query">Object identifying the dealer<see cref="AgreementListRequest"/></param>
/// <returns>Object containing a list of all agreements for the provided dealer<see cref="AgreementListResponse"/></returns>
[OperationContract]
[FaultContract(typeof(DatabaseFault))]
[FaultContract(typeof(ServiceAgentFault))]
AgreementListResponse GetAgreements(AgreementListRequest request);
答案 0 :(得分:5)
这些代码注释仅存在于服务器中 - 它们是注释,并且它们是特定于.NET的,因此在为WCF服务创建客户端代理时,它们不会通过网络传输。
我看到的只有一种方法可以让你得到你想要的东西:如果你控制线的两端,例如如果您同时编写服务(服务器)和客户端,则可以将服务和数据协定放入单独的Contracts
程序集中,然后在服务和客户端代码之间共享该程序集。在这种情况下,您的客户端代码将使用完全相同的文件,因此可以访问代码注释,那些将在intellisense中呈现
我偶然发现的第二个选项是WCFExtras - 一个Codeplex项目,它有一些WCF扩展。您可能感兴趣的是扩展,它将服务器端的XML代码注释呈现为WSDL中的xsd:documentation
标记,并返回到客户端的XML代码注释(使用.NET客户端时)。 / p>
从源代码XML注释中添加WSDL文档
此扩展允许您添加WSDL 文档(annotaiton)直接 来自源文件中的XML注释。 这些评论将作为发表 WSDL的一部分,可用于 WSDL工具,知道如何采取 它们的优点(例如Apache Axis wsdl2java和其他人)。发布2.0 还包括客户端WSDL 将转换那些WSDL的导入器 评论中的XML注释 生成代理代码。