Использование значения атрибута 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.");
        }
    }
}
Другие вопросы по тегам