2011-01-13 132 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