通用字段更改事件
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 提供一个线程轮询方法,当你正在轮询的状态发生变化时引发事件..
我目前正在尝试为数百个 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 提供一个线程轮询方法,当你正在轮询的状态发生变化时引发事件..