给定一个对象,有没有任何方法可以在该对象被垃圾收集时得到通知?
我正在尝试让C#扩展方法更像混入(特别是添加日志记录)。因此,每个对象都会获得一个新的Logger()方法,该方法返回一个ILog,该ILog根据扩展方法的目标对象创建并缓存。
效果很好,唯一的问题显然是当一个对象消失后,它的日志记录器可能会挂起相当长的时间。当然,我可以设置一些定期机制来扫描日志记录器缓存并清除它,但我更愿意设置一些垃圾收集通知,以便了解系统何时不再使用我的对象。
有人知道如何做到这一点吗?
我正在尝试让C#扩展方法更像混入(特别是添加日志记录)。因此,每个对象都会获得一个新的Logger()方法,该方法返回一个ILog,该ILog根据扩展方法的目标对象创建并缓存。
效果很好,唯一的问题显然是当一个对象消失后,它的日志记录器可能会挂起相当长的时间。当然,我可以设置一些定期机制来扫描日志记录器缓存并清除它,但我更愿意设置一些垃圾收集通知,以便了解系统何时不再使用我的对象。
有人知道如何做到这一点吗?