리플렉션을 사용하여 오브젝트 속성이 변경되면 알림을 받고 싶습니다.리플렉션에서 PropertyChanged 사용
이 mjpeg.dll의 클래스 중 하나입니다
public class MJPEGConfiguration : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string psw;
public string password
{
get
{
return psw;
}
set
{
psw = value;
OnPropertyChanged("PSW");
}
}
public virtual void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
내 camera.cs에서, 나는 "개체 구성"에 MJPEGConfiguration 객체를 설정하고이 객체로하여 PropertyChanged 이벤트를 추가 :
public object Configuration
{
get
{
return configuration;
}
set
{
configuration = value;
Type t = configuration.GetType(); //t is the type of "MJPEGConfiguration"
EventInfo ei = t.GetEvent("PropertyChanged");
MethodInfo mi = this.GetType().GetMethod("My_PropertyChanged");
Delegate dg = Delegate.CreateDelegate(ei.EventHandlerType, mi);
ei.AddEventHandler(configuration, dg);
}
}
public void My_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
}
그러나 "Delegate dg = ...."줄에서 ArgumentException (대상 메서드에 대한 바인딩 오류)가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까? 아니면 이것을 할 수있는 올바른 방법이 있습니까?
답변이 도움이 되었으면 허용 된 것으로 표시하십시오. 그렇지 않은 경우 이유에 대한 의견을 추가하십시오. –