通用字段更改事件

Generic field changed event

我目前正在尝试为数百个 classes 制作一个 Logger,它监听 3 属性 的变化,并在它们发生时创建一条日志消息。

  public class MementoLoggerUtility<SLOC, AVAL, BVAL>
    {
        private SLOC Loc;
        private AVAL Val1;
        private BVAL Val2;

        /// <summary>
        /// CTOR
        /// </summary>
        public MementoLoggerUtility(ref SLOC loc, ref AVAL val1, ref BVAL val2)
        {
            Loc = loc;
            Val1 = val1;
            Val2 = val2;            
        }

我会在监听对象的构造函数中传递 3 属性,但我需要一个 OnPropertyChanged 事件到这个 class 中以监听它们的变化。

(无法写入监听对象的属性 setter。)

这个计划还有可能实现吗?如果没有,你能给我另一个选择吗?

我认为是..如果您的解决方案仅用于测试目的,我认为问题不多,否则,您应该考虑对应用程序性能的潜在影响,主要与同时对象的数量有关运行 以及轮询它们的相关日志记录对象..

你应该为每个 class 提供一个线程轮询方法,当你正在轮询的状态发生变化时引发事件..