【问题标题】:Way to hit multiple attributes in c# [closed]在c#中点击多个属性的方法[关闭]
【发布时间】:2016-04-18 09:54:28
【问题描述】:

之后: Custom Attribute not being hit 我正在寻找在我的应用程序中点击方法属性的方法。

目前我知道是否有一些自定义属性,例如

 [AttributeUsage(AttributeTargets.All)]
public class MyAttribute : Attribute
{
    public MyAttribute()
    {
        Console.WriteLine("Hello");
    }
}

以及用 MyAtrtribute 装饰的方法,例如:

[MyValidation]
public class Service
{
    [MyValidation]
    public bool GetService(int id)
    {
        if (id > 100)
        {
            return true;
        }
        return false;
    }
}

触发该属性的方法是调用方法service.GetType().GetCustomAttributes(false)。 问题是:如果我想在许多类中装饰许多方法,应用属性的方式是什么?就我而言,我想在获取 createProject()、createUser() 等方法调用时应用许可证验证。

service.GetType().GetCustomAttributes(false)这样的编码方式似乎太麻烦了。 我想要一些中心位置来负责触发应用的属性。有一些优雅的解决方案吗? 谢谢!

【问题讨论】:

    标签: c# validation attributes custom-attributes


    【解决方案1】:

    你想要的是AOP(面向方面​​的编程),因为现在,如果你需要自己手动调用属性,它们对于那个目的毫无价值。您也可以调用该方法,而不是将其放入 Attribute 中。

    谷歌 AOPC# 你会发现一些供应商。

    最令人印象深刻的可能是PostSharp。但这也是需要真金白银的。其他都是免费的。

    【讨论】:

    • 谢谢!我一直在寻找一种通用的方法来做到这一点,这似乎是一个不错的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多