在方法体中使用WebMethod属性值

时间:2013-07-24 11:14:51

标签: c# attributes webmethod

我正在尝试在我的方法体中使用一个属性,但不知道如何。

这个假代码应该显示我的意思(只是一个简单的样本

[WebMethod(MessageName = "EnrichmentXml", Description = "Locate Enrichment XML Doc")]
public XmlDocument EnrichmentXml(string xmlRequest)
{
    SaveLog(Description + " method was called.");
}

在我的示例中,描述未知。 但是如何使它可用?

由于

1 个答案:

答案 0 :(得分:1)

首先,一个属性用于用元数据“装饰”一个项目(可以改变项目的行为)。在这种情况下,WebMethod只有服务器通知ASP.Net,它正在装饰的方法将被称为Web服务方法(例如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.");
        }
    }
}