在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)
的方式似乎太麻烦了。我想要一些中心位置来负责激发应用的属性。有什么优雅的解决方案吗?谢谢
您想要的是AOP(面向方面编程),因为现在,如果您需要自己手动调用属性,那么它们就没有价值了。您也可以调用该方法,而不是将其放入Attribute中。
谷歌AOP和C#,你会发现一些提供商。
最令人印象深刻的可能是PostSharp。但这也是一个真正的成本。其他人是免费的。