C# 如何在C中获取提供给方法的属性值#

C# 如何在C中获取提供给方法的属性值#,c#,C#,我的问题是如何使用反射获取Description属性的字符串值。您可以这样尝试: public class A { [Description("This method does something")] public void TestMethod() { //Do Something } } public void GetDescription(){MethodInfo[]methods=typeof(A).GetMethods(Bindin

我的问题是如何使用反射获取Description属性的字符串值。

您可以这样尝试:

public class A
{
    [Description("This method does something")]
    public void TestMethod()
     {
       //Do Something
     }
}

public void GetDescription(){MethodInfo[]methods=typeof(A).GetMethods(BindingFlags.public | BindingFlags.Instance | BindingFlags.DeclaredOnly);Dictionary methodInformations=new Dictionary();foreach(方法中的var方法){object attrs=method.GetCustomAttribute(typeof(DescriptionAttribute));DescriptionAttribute decr=attrs as DescriptionAttribute;methodInformations.Add(method.Name,decr.Description);}}上述方法还帮助我过滤基类方法,因为类A是派生类
MethodBase m = typeof(A).GetMethod("TestMethod");;
Description d = (Description)m.GetCustomAttributes(typeof(Description), true)[0] ;
string str= d.Value; 
var description = ((DescriptionAttribute)typeof (A).GetMethod("TestMethod")
    .GetCustomAttribute(typeof (DescriptionAttribute))).Description;