我包装了对API的调用,我的大多数方法在它们的第一行中都有:
if ( !Gree.Authorizer.IsAuthorized() )
{
return;
}在python中,我会用@login_required之类的东西来装饰这些方法。
您将使用什么来重构c#中的这种类型的逻辑
发布于 2012-11-07 20:08:04
您正在寻找一种称为面向方面编程的更通用编程方法的子集。
C#似乎通过几个库来支持它,多亏了CLR的一些特性,人们也可以推出自己的库。请参阅Aspect Oriented Programming using .NET,它涵盖了C#的基本原理(我链接了文章中讨论PostSharp细节的部分,但如果您正在寻找像PostSharp这样的现成解决方案,那么其余部分也同样有趣,正如另一个答案中所提到的那样)。
发布于 2012-11-07 19:59:45
您可以使用任何用于C#的面向方面编程工具,比如this one。
使用PostSharp,软件开发人员可以将实现模式封装到称为方面的类中,并使用自定义属性将这些方面应用于他们的代码。
发布于 2012-11-07 20:17:11
我对python并不熟悉,但您似乎在寻找“属性”(MSDN) (它与Java非常相似)。
具体地说,.NET提供了"AuthorizeAttribute",它可以做您想要做的事情(甚至可能更多)。虽然你不是在.NET下,但这可能会给你正在尝试实现的实现带来一些启发。
https://stackoverflow.com/questions/13269246
复制相似问题