C# 你在任何领域都设置了检测吗?

C# 你在任何领域都设置了检测吗?,c#,reflection,setter,C#,Reflection,Setter,我做了一些搜索(大部分完成了C#depth),但还没有找到我要找的东西 不过我很好奇是否有一种方法(hacky没问题!)可以从类上的任何集合操作中获得通用通知或钩子 原因是我正在开发一个将应用程序状态保存为类的框架。当状态改变时,我需要它发出通知 在每个可能的字段上设置一个didSet(即在每个setter调用中触发一个警报)是一种繁琐的过度操作。你知道我有什么办法可以在一个类的某个字段被更改时获得钩子吗 更新1 “Thehenny”提出的一个很好的建议是。以下是一段视频,重点介绍了它的功能:

我做了一些搜索(大部分完成了C#depth),但还没有找到我要找的东西

不过我很好奇是否有一种方法(hacky没问题!)可以从类上的任何集合操作中获得通用通知或钩子

原因是我正在开发一个将应用程序状态保存为类的框架。当状态改变时,我需要它发出通知

在每个可能的字段上设置一个
didSet
(即在每个setter调用中触发一个警报)是一种繁琐的过度操作。你知道我有什么办法可以在一个类的某个字段被更改时获得钩子吗

更新1

“Thehenny”提出的一个很好的建议是。以下是一段视频,重点介绍了它的功能:

更新2


@MattiasÅslund建议的开放源码。

看看github。它将完全满足您的要求,并且是免费的。

您是指字段还是属性?您可以为字段创建属性。我可以创建触发我需要的事件的属性,但这就是为什么我想知道是否有一种通用的方法可以这样做,而不必为每个字段创建一个特定的属性来获得更改通知。当您直接访问字段时,没有办法。当使用属性访问它时,请确保可以在属性setter/getter中实现代码。我建议看看PostSharp,没有内置的解决方案。有趣的是,我来看看。Swift有一个很酷的
didSet
willSet
功能,但它也依赖于每个字段的实现。这个东西似乎在编译时实现了
PropertyChanged
。所以你没有工作。在此注入之后,您可以连接事件。我对那东西毫无经验!我是它的初审者,并提交了一些代码;主要是单元测试。所以找到它并不难……;)但是您必须在每个属性上实现属性。我想OP不想避免这种情况?Java和Swift也有类似的情况吗?@lokusking不,你可以将类隐式通知属性设置为我不知道Unity,但是关于如何在Unity中使用c#6的链接也可能有所帮助: