C# 跟踪对自动实现属性的调用
是否有一种方法可以跟踪和拦截对自动实现的属性中的值的调用 我希望代码看起来有点像这样:C# 跟踪对自动实现属性的调用,c#,.net,attributes,aop,C#,.net,Attributes,Aop,是否有一种方法可以跟踪和拦截对自动实现的属性中的值的调用 我希望代码看起来有点像这样: [Tracked] public int SomeProperty { get; set; } 理想情况下,该属性将能够截获对属性值的更改。这可能吗 我不想让第二段代码稍后在对象上旋转并请求值,但是属性应该在设置时固定值。否。这样做的方式是不使用自动属性。唯一可能的解决方案是,使用类似于在类周围创建自动包装器的东西,并让它跟踪更改,但这是一项很难实现的工作。您应该能够使用AOP框架来实现这一点,例如(我注意
[Tracked]
public int SomeProperty { get; set; }
理想情况下,该属性将能够截获对属性值的更改。这可能吗
我不想让第二段代码稍后在对象上旋转并请求值,但是属性应该在设置时固定值。否。这样做的方式是不使用自动属性。唯一可能的解决方案是,使用类似于在类周围创建自动包装器的东西,并让它跟踪更改,但这是一项很难实现的工作。您应该能够使用AOP框架来实现这一点,例如(我注意到它现在已经商业化了)。还有一些链接,但有些链接已经失效。如果您想要一个在运行时工作的解决方案,那么您需要一个面向方面的编程(AOP)框架;我已经成功地使用了。它不像PostSharp那样成熟,但工作原理相同:它将修改已编译的代码,生成另一个程序集 如果您只是想将其用于测试(或分析),那么还有另一个选项:(也是免费的)。它的工作原理非常不同;它使用“迂回”类型的注入在程序运行时更改程序,拦截属性getter和setter方法