0

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

这个假代码应该说明我的意思(只是一个简单的示例

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

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

谢谢

4

1 回答 1

1

首先,一个属性用于用元数据“装饰”一个项目(这可能会改变项目的行为)。在这种情况下,WebMethod只有服务器通知 ASP.Net 它正在装饰的方法将被称为 Web 服务方法(例如 MyWebService.asmx/EnrichmentXml)。类的构造函数的Description命名参数对应于类的一个属性。由于没有在您的方法中实际实例化,因此您无法访问 decorating 的任何成员。WebMethodAttributeDescriptionWebMethodAttributeWebMethodAttributeWebMethodAttribute

我建议如下:

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.");
        }
    }
}
于 2013-07-24T13:05:57.377 回答