我在阅读自定义属性时遇到问题 我已经阅读了更多关于此的教程,但无法读取该值。
注意:我使用控制台应用程序。
主类
namespace IRCBotter
{
public class IrcBot
{
[UserLevel(LevelRequired = 10)]
void HelpCommand(string user)
{
GetAttribute(typeof(IrcBot));
}
public static void GetAttribute(Type t)
{
// Get instance of the attribute.
UserLevel MyAttribute =
(UserLevel)Attribute.GetCustomAttribute(t, typeof(UserLevel));
if (MyAttribute == null)
{
Message.Error("The attribute was not found.");
}
else
{
// Get the Name value.
Message.Error("Valore " + MyAttribute.LevelRequired.ToString());
}
}
}
}
属性类
namespace IRCBotter.Commands
{
[AttributeUsage(AttributeTargets.All ,AllowMultiple=true)]
class UserLevel : Attribute
{
public int LevelRequired { get; set; }
}
}
在调试时,控制台说我“找不到属性”。
有一个简单的工作示例,可以从自定义属性中获取正确的值吗?
void HelpCommand
需要检查一个存储列表中存储的变量用户是否相等
他的水平是>在LevelRequired。
答案 0 :(得分:2)
您尚未在类上声明属性,而是在方法HelpCommand
上定义了该属性。您必须获取MethodInfo
的{{1}}并在其上调用HelpCommand
。这些方面的东西。
GetCustomAttribute