相关疑难解决方法(0)

为什么我的.NET属性不执行操作?

我创建了一个简单的属性:

[AttributeUsage(AttributeTargets.Method)]
public class InitAttribute : System.Attribute
{
    public InitAttribute()
    {
        Console.WriteLine("Works!");
    }
}
Run Code Online (Sandbox Code Playgroud)

我将它应用于一个简单的方法:

static class Logger
{
    public static string _severity;

    public static void Init(string severity)
    {
        _severity = severity;
    }

    [Init()]
    public static void p()
    {
        Console.WriteLine(_severity);
    }
}
Run Code Online (Sandbox Code Playgroud)

发生了什么是非常好的前进.只是,我希望该属性执行一个动作(打印Works!),但这不会发生.

上瘾,打印"作品!" 当然只是出于调试目的:我想访问实例的属性_severity(例如,检查是否是!= null),但我一直在阅读的有关属性的内容(对我来说很新)是关于访问的通过反思,的方法或属性等.一旦我评估了_severity,我如何修改修饰方法的行为(在这种情况下,引发异常"Logger未初始化"并且不执行它)?

任何帮助赞赏.

c# reflection attributes

5
推荐指数
1
解决办法
1591
查看次数

标签 统计

attributes ×1

c# ×1

reflection ×1