我有一個自定義屬性的方法。如果我有一個引用此方法的委託,我可以告訴委託所引用的方法是否具有該屬性?如何通過委託來詢問方法屬性?
6
A
回答
2
我不確定這是否是一般情況,但我是這麼認爲的。請嘗試以下操作:
class Program
{
static void Main(string[] args)
{
// display the custom attributes on our method
Type t = typeof(Program);
foreach (object obj in t.GetMethod("Method").GetCustomAttributes(false))
{
Console.WriteLine(obj.GetType().ToString());
}
// display the custom attributes on our delegate
Action d = new Action(Method);
foreach (object obj in d.Method.GetCustomAttributes(false))
{
Console.WriteLine(obj.GetType().ToString());
}
}
[CustomAttr]
public static void Method()
{
}
}
public class CustomAttrAttribute : Attribute
{
}
3
使用委託的Method
屬性的GetCustomAttributes
方法。下面是一個示例:
delegate void Del();
[STAThread]
static void Main()
{
Del d = new Del(TestMethod);
var v = d.Method.GetCustomAttributes(typeof(ObsoleteAttribute), false);
bool hasAttribute = v.Length > 0;
}
[Obsolete]
public static void TestMethod()
{
}
如果該方法具有屬性,var v將包含它;否則它將是一個空數組。
+0
感謝您的快速響應 – djp
相關問題
- 1. 委託方法屬性
- 2. 通過委託方法攜帶自定義屬性
- 3. 通過委託
- 4. 無法通過委託
- 5. 有沒有辦法通過委託直接調用屬性setter?
- 6. C#屬性委託?
- 7. 我可以從通用委託獲取方法屬性嗎?
- 8. 如何在自定義委託屬性上調用類方法?
- 9. 如何在類別中定義委託方法作爲屬性?
- 10. 在委託方法中訪問單元格的屬性
- 11. 委託方法
- 12. 委託方法
- 13. 如何從annonymus委託獲取屬性
- 14. 如果屬性更改調用委託方法
- 15. 無法在C#中使用委託的方法屬性?
- 16. 如何通過條件委託給RestController?
- 17. 如何通過委託傳遞uislider值?
- 18. 通過C中的屬性公開委託#
- 19. 無法訪問委託中的方法
- 20. 如何訪問委託方法之外的委託返回參數?
- 21. UIWebView委託方法
- 22. NSURLConnection委託方法
- 23. NSURLConnection委託方法
- 24. 的委託方法
- 25. AsyncSocket委託方法
- 26. UITableView委託方法
- 27. UITableView委託方法
- 28. 有沒有更好的方法?委託 - >委託 - >委託
- 29. WKExtension委託來觸發WKInterfaceController方法
- 30. 如何使用「委託」訪問器創建屬性?
感謝您的快速響應 – djp