Использование значения атрибута WebMethod в теле метода
Я пытаюсь использовать атрибут в теле моего метода, но не знаю как.
Этот поддельный код должен показать, что я имею в виду (только простой пример
[WebMethod(MessageName = "EnrichmentXml", Description = "Locate Enrichment XML Doc")]
public XmlDocument EnrichmentXml(string xmlRequest)
{
SaveLog(Description + " method was called.");
}
В моем примере описание неизвестно. Но как сделать его пригодным для использования?
Спасибо
1 ответ
Прежде всего, атрибут используется для "украшения" предмета метаданными (что может изменить поведение предмета). В этом случае, WebMethod
только серверы должны уведомлять ASP.Net о том, что метод, который он украшает, должен называться методом веб-службы (например, MyWebService.asmx/EnrichmentXml). Description
именованный параметр WebMethodAttribute
конструктор класса соответствует Description
собственность, если WebMethodAttribute
учебный класс. Так как WebMethodAttribute
фактически не создается в вашем методе, у вас нет доступа ни к каким элементам декорирования WebMethodAttribute
,
Я бы предложил следующее:
namespace MyNamespace {
public class MyWebServiceClass {
private const string DESCRIPTION = "Locate Enrichment XML Doc";
[WebMethod(MessageName = "EnrichmentXml", Description = DESCRIPTION)]
public XmlDocument EnrichmentXml(string xmlRequest)
{
SaveLog(DESCRIPTION + " method was called.");
}
}
}