Мета-информация веб-службы - PullRequest
1 голос
/ 14 января 2011

Как я могу отправить метаинформацию клиенту, например.

У меня есть этот метод, который является веб-службой (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 голосов
/ 19 марта 2011

Если вы используете WCF, то сначала вам нужно украсить свой класс с помощью ServiceContract, и каждый метод для представления должен быть OperationContract. Ваши классы данных должны быть DataContract и каждый член должен представлять [DataMember]

Взгляните на WCFExtras на codeplex. Он имеет функцию для включения ваших XML-комментариев исходного кода в сгенерированный WSDL. Все, что вам нужно сделать, это добавить ссылку в ваш проект, а затем добавить атрибут [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 сгенерирован в конфигурации вашей сборки и что файл доступен во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...