在C#中,可以使用GetCustomAttributes方法來獲取指定成員(如類、方法、屬性等)的自定義屬性。該方法返回一個Attribute數組,表示指定成員上應用的所有自定義屬性。
以下是一個示例代碼,用于獲取返回值屬性:
using System;
using System.Reflection;
class Program
{
static void Main()
{
MethodInfo methodInfo = typeof(MyClass).GetMethod("MyMethod");
// 獲取返回值屬性
object[] returnAttributes = methodInfo.ReturnTypeCustomAttributes.GetCustomAttributes(true);
foreach (object attribute in returnAttributes)
{
Console.WriteLine(attribute.ToString());
}
}
}
class MyClass
{
[MyCustomAttribute("Custom attribute")]
public int MyMethod()
{
return 0;
}
}
[AttributeUsage(AttributeTargets.ReturnValue)]
class MyCustomAttribute : Attribute
{
public MyCustomAttribute(string message)
{
Message = message;
}
public string Message { get; }
}
在上面的示例中,我們通過反射獲取了MyClass類中的MyMethod方法,并使用GetCustomAttributes方法來獲取返回值屬性。在這個例子中,我們定義了一個自定義屬性MyCustomAttribute,并將其應用在MyMethod方法的返回值上。獲取到返回值屬性后,我們遍歷輸出了該屬性的信息。