public delegate void SetProp(object obj);
void Main()
{
TestObj obj = new TestObj();
SetProp setPropDel = (SetProp)SetProp.CreateDelegate(typeof(SetProp),
obj, obj.GetSetPropDelegate().GetMethodInfo());
MethodInfo setPropMethod = setPropDel.GetMethodInfo();
///Replacing Count Set-Method Pointer with new Method
typeof(TestObj).GetProperty("Count").GetSetMethod().ReplaceMethodPtr(setPropMethod);
obj.Count = 1;
}
public class TestObj
{
public SetProp GetSetPropDelegate() => SetPropValue;
private void SetPropValue(object obj) => Console.WriteLine(obj); ///<--- NullReferenceException obj is null.
public int Count { get; set; }
}
Привет, я пытался заменить частный set-Method для автоматического свойства «Count» в моем классе TestObj.
Сама замена работает. Потому что, когда я использую установщик, например obj.Count = 1, вызывается новый метод.
Мой вопрос: можно ли передать параметр в этот новый метод? По крайней мере, мне нужно новое значение, которое выделяется свойству Count-Property. В этом случае: 1.
Моя цель — сделать возможным замену Set-методов автоматических свойств для создания события при вызове нового Set-метода, а также сохранить базовую функцию Set-метода.
Надеюсь, понятно, чего я хочу добиться. Возможно, я столкнулся с чем-то невозможным здесь, но я уверен, что многие люди гораздо лучше понимают, что происходит.
Спасибо за чтение.