在C#,VB.net中有很多AOP实现.这是一些AOP实现:
.Net中AOP的最佳实现是什么?我应该用什么?
我试图了解终结和析构函数如何在C#中工作,我试图在System.Object.Finalize示例中运行代码(代码复制粘贴,没有做出任何更改),但输出与预期的不一样,它表明析构函数是从未打电话过
代码是:
using System;
using System.Diagnostics;
public class ExampleClass
{
Stopwatch sw;
public ExampleClass()
{
sw = Stopwatch.StartNew();
Console.WriteLine("Instantiated object");
}
public void ShowDuration()
{
Console.WriteLine("This instance of {0} has been in existence for {1}",
this, sw.Elapsed);
}
~ExampleClass()
{
Console.WriteLine("Finalizing object");
sw.Stop();
Console.WriteLine("This instance of {0} has been in existence for {1}",
this, sw.Elapsed);
}
}
public class Demo
{
public static void Main()
{
ExampleClass ex = new ExampleClass();
ex.ShowDuration();
}
}
Run Code Online (Sandbox Code Playgroud)
更新:
当我使用visual studio和.net framework …
这是一个类似于如何在每次方法调用后隐式调用方法的问题?但是对于python
假设我有一个带有一些属性的爬虫类(例如self.db)crawl_1(self, *args, **kwargs)和另一个save_to_db(self, *args, **kwargs)用于将爬行结果保存到数据库的属性(self.db).
我想以某种方式save_to_db在每次crawl_1, crawl_2, etc.通话后都跑.我已经尝试将其作为"全局"的util装饰器,但我不喜欢结果,因为它涉及self作为参数传递.
python metaprogramming decorator python-3.x python-decorators