<分区>
我完全理解我的问题很奇怪,可能有很多更好的方法可以实现我的目标,因此我们将不胜感激。
基本思想是跟踪在运行时对特定类型实体的特定属性所做的所有更改,而无需修改它们的代码。
假设我有一个名为 Foo 的实体,如下所述:
class Foo
{
private string _bar;
public string Bar
{
get { return _bar; }
set
{
// some logic here...
_bar = value;
// some logic here...
}
}
}
基本上我想要一个允许我编写如下代码的库:
Hook.For<Foo>()
.OnSet(foo => foo.Bar)
.Action((foo, value) =>
{
// save the state of the foo instance along with the value passed to the setter
});
我了解所需的功能涉及添加一些额外的构建步骤来修改输出汇编 IL 代码。语法不需要这么流畅,我什至不介意 JSON 或 XML 配置。主要思想不是更改我们应用程序的大量不良遗留代码,而是使用外部监控(用于调试目的)。
是否有任何 AOP 框架可以在全局范围内应用这样的方面,而不需要我用特性装饰每个属性或类?