2011-01-13 90 views
1

例如,我如何发送元信息给客户端。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 ; } 
} 

回答

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文档文件,并在运行时使文件可用。

+0

我没有使用WCF,但感谢我解决使用其他服务提供元信息的责任。 – 2011-05-03 14:10:26