2011-01-13 15 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を使用しませんでしたが、おかげで、他のサービスを使用してメタ情報を配信する責任を負います。 –

関連する問題