我包装调用的API以及我的大多数方法在他们的第一线:是否有像c#的python装饰器?
if (!Gree.Authorizer.IsAuthorized())
{
return;
}
在Python中我会装点这些方法的东西,如@login_required
。
你会用什么来重构c#
中那种类型的逻辑?
我包装调用的API以及我的大多数方法在他们的第一线:是否有像c#的python装饰器?
if (!Gree.Authorizer.IsAuthorized())
{
return;
}
在Python中我会装点这些方法的东西,如@login_required
。
你会用什么来重构c#
中那种类型的逻辑?
您正在寻找称为面向方面编程(Aspect Oriented Programming)的更一般编程方法的子集。
C#似乎支持它通过几个库,也可以推出自己的,这要感谢一些CLR功能。请参阅Aspect Oriented Programming using .NET,其中涵盖了其基本原理(我将链接文章的部分内容讨论C#的具体内容,但如果您正在寻找像PostSharp这样的现成解决方案,其余部分同样有趣,如另一答案中所述)。
我不熟悉Python,但它似乎你正在寻找“属性”(MSDN),(它非常类似于Java注释)。
尤其是,.NET提供了“AuthorizeAttribute”,它完全符合你的要求(也许更多一点)。虽然你不在.NET之下,但是你仍然可以在实现中实现一些东西。
'属性'只是元数据附加到类/方法等,他们自己什么都不做。您需要使用另一种工具,它使用反射读取这些元数据,并执行所有AOP工具所需的所需内容 – Ankur
感谢您的链接。我将检查这是否适用于'Unity3d'。 – Macarse