【发布时间】:2012-08-25 04:20:45
【问题描述】:
给定一个对象,有没有办法在该对象被垃圾回收时得到通知?
我正在尝试让 C# 扩展方法的行为更像 mixins(特别是在添加日志记录方面)。所以基本上每个对象都会获得一个新的 Logger() 方法,该方法返回一个 ILog,该 ILog 根据作为扩展方法目标的对象创建和缓存。
工作得非常好,唯一的担心显然是在一个对象消失后,它的记录器可能会停留相当长的一段时间。我当然可以设置一些定期机制来扫描记录器缓存并清除它,但我更愿意设置一些垃圾收集通知,以便了解系统何时不再使用我的对象。
有人知道怎么做吗?
【问题讨论】: