我正在包装对API的调用,我的大部分方法都在第一行:
if ( !Gree.Authorizer.IsAuthorized() )
{
return;
}
在python中,我会用类似@login_required
的东西来装饰这些方法。
您会在c#
?
答案 0 :(得分:6)
您正在寻找一种称为面向方面编程的更通用编程方法的子集。
C#似乎通过几个库支持它,并且由于一些CLR功能,人们也可以推出自己的库。请参阅Aspect Oriented Programming using .NET,其中涵盖了其基本原则(我正在链接文章中关于C#细节的部分,但如果您正在寻找像PostSharp这样的现成解决方案,其余的同样有趣,如另一个答案所述)。
答案 1 :(得分:4)
您可以将任何AOP工具用于C#,例如this一个。
使用PostSharp,软件开发人员可以封装实现 将模式转换为称为方面的类,并将这些方面应用于它们 使用自定义属性的代码。
答案 2 :(得分:2)
我不熟悉python,但似乎你在寻找“属性”(MSDN),(这与Java注释非常相似)。
特别是,.NET提供了“AuthorizeAttribute”,它完全符合您的要求(可能还有更多)。虽然你不在.NET之下,但这仍然可以为你想要实现的实现提供一些启示。