Общее поле изменило событие
В настоящее время я пытаюсь создать 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 в этот класс для прослушивания их изменений.
(Я не могу записать его в установщик свойств прослушиваемого объекта.)
Возможно ли реализовать этот план? Если нет, можете ли вы предложить мне другой вариант?
1 ответ
Я думаю, что... если ваше решение предназначено только для целей тестирования, я думаю, что проблем не так много, в противном случае вам следует учитывать потенциальное влияние на производительность приложения, в основном связанное с количеством одновременно работающих объектов и относительными объектами журналирования. кто опрашивает их..
Вы должны предоставить один многопоточный метод опроса для каждого класса, и когда изменяются состояния, которые вы опрашиваете, возникает событие.