gpt4 book ai didi

c# - 捕获属性的目标

转载 作者:太空狗 更新时间:2023-10-30 00:52:42 24 4
gpt4 key购买 nike

我有以下属性定义:

[System.AttributeUsage(System.AttributeTargets.Method)]
public class ClientFunction : System.Attribute {
public static List<???> Targets = new List<???>();
public string Display;
public string Tooltip;

public ClientFunction (string display, string tooltip = null) {
Display = display;
Tooltip = tooltip;
// Add target method of this specific attribute to Targets
Targets.Add(???);
}
}

我想将属性分配给的方法添加到 Targets。我怎样才能做到这一点?也许有第三个参数需要委托(delegate)或其他东西?

最佳答案

你不能那样做,属性不知道它们被分配到的类型/方法/等。

此外,属性构造函数不能将委托(delegate)作为参数。属性的参数必须是编译时常量(例如,字符串、整数、枚举)。查看可用类型:http://msdn.microsoft.com/en-us/library/aa664615%28v=vs.71%29.aspx

如果你想找到所有用属性修饰的方法,你必须使用反射并检查给定程序集中每个类型的每个方法,例如,检查这些方法是否定义了属性。

另请注意,按照惯例,所有属性的名称都应以“属性”一词作为后缀。在您的情况下,ClientFunctionAttribute

关于c# - 捕获属性的目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20316286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com