Web服务元信息

时间:2011-01-13 22:45:27

标签: .net web-services reflection

我如何向客户发送元信息,例如。

我有这个方法什么是Web服务(GetProductById)。我的实体产品包含带有自定义属性的元信息。

我想发送给我的客户元信息。现在我该怎样做这类或类似的东西?

 Product GetProductById(int productId)
 {
   return IProductModel.GetProduct(ProductId);
 }




Public Class Product
{
   [Caption("Product id"]
   int ProductId { get; private set; }

   [Caption("Name of product")]
   string Name { get; set ; }
}

1 个答案:

答案 0 :(得分:0)

如果您正在使用WCF,那么首先需要使用ServiceContract来装饰您的类,并且每个要公开的方法都需要是OperationContract。您的数据类需要是DataContract,每个成员都需要公开[DataMember]

在codeplex上查看WCFExtras。 它具有在生成的WSDL中包含源代码xml注释的功能。 您需要做的就是在项目中添加一个引用,然后将属性[XmlComments]添加到您的服务合同的类/接口中。

您的代码如下所示:

[ServiceContract, XmlComments]
public class WebService 
{

   /// <summary>Returns the product information</summary>
   [OperationContract]    
   Product GetProductById(int productId)
   {
     return IProductModel.GetProduct(ProductId);
   }
}

/// <summary>Summary you want your client to see</summary>
[DataContract]
Public Class Product
{
   /// <summary>Product id</summary
   [DataMember(IsRequired = true)]
   int ProductId { get; private set; }

   /// <summary>Name of product</summary>
   [DataMember(IsRequired = true)]
   string Name { get; set ; }
}

这将确保WSDL包含您添加的注释。 还要确保在构建配置中生成Xml文档文件,并在运行时提供该文件。