在c#中实现多个属性的方法

本文关键字:属性 方法 实现 | 更新日期: 2024-09-25 16:03:07

之后:自定义属性未命中我正在寻找在应用程序中命中方法属性的方法。

据我所知,目前是否有一些像这样的自定义属性

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

以及用MyAtral贡装饰的方法,如:

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

激发此属性的方法是调用方法服务。GetType()。GetCustomAttributes(false)。问题是:如果我想装饰许多类中的许多方法,应用属性的方式是什么?在我的情况下,我想在获得方法调用(如createProject()、createUser()等)时应用许可证验证。

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

在c#中实现多个属性的方法

您想要的是AOP(面向方面编程),因为现在,如果您需要自己手动调用属性,那么它们就没有价值了。您也可以调用该方法,而不是将其放入Attribute中。

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

最令人印象深刻的可能是PostSharp。但这也是一个真正的成本。其他人是免费的。