여기에있는 문제를 해결하기 위해 ImpromptuInterface
을 사용하려고합니다. Adding Interface Implementation to ExpandoObject.'ExpandoObject'에 'PropertyChanged'에 대한 정의가 없습니다.
내 기본 클래스에서 내 인터페이스의 다양한 속성에 액세스 할 수 있지만 더 이상 ExpandoObject의 PropertyChanged 이벤트를 구독 할 수 없습니다.
문제 해결 중에 문제를 단순화 할 수있었습니다.
Service.cs
using ImpromptuInterface;
public Service()
{
InitializeComponent();
dynamic expando = new ExpandoObject();
try
{
INotifyPropertyChanged obj = Impromptu.ActLike(expando);
obj.PropertyChanged += obj_PropertyChanged;
}
catch (Exception ex)
{
EventLog.WriteEntry(ex.ToString(), EventLogEntryType.Error);
}
try
{
INotifyPropertyChanged obj = Impromptu.ActLike<INotifyPropertyChanged>(expando);
obj.PropertyChanged += obj_PropertyChanged;
}
catch (Exception ex)
{
EventLog.WriteEntry(ex.ToString(), EventLogEntryType.Error);
}
}
private void obj_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
throw new NotImplementedException();
}
내가
에 대한 정의를 포함하지 않는다는 오류가 발생'System.Dynamic.ExpandoObject가' '하여 PropertyChanged'
생성자에서 이벤트 처리기를 연결하려고 할 때마다 발생합니다.
이벤트 로그 1
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'System.Dynamic.ExpandoObject' does not contain a definition for 'PropertyChanged'
at CallSite.Target(Closure , CallSite , Object)
at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
at ActLike_INotifyPropertyChanged_dc51b6c65bf147d0b5f35218102e3c11.add_PropertyChanged(PropertyChangedEventHandler value)
at Service..ctor()
이벤트 로그 2
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'System.Dynamic.ExpandoObject' does not contain a definition for 'PropertyChanged'
at CallSite.Target(Closure , CallSite , Object)
at ActLike_INotifyPropertyChanged_dc51b6c65bf147d0b5f35218102e3c11.add_PropertyChanged(PropertyChangedEventHandler value)
at Service..ctor()
내가 ImpromptuInterface
이 방법을 사용할 수 없습니다 있습니까?
내가 연주 한 몇 분 전부터 'ImpromptuInterface'버그가있는 것 같습니다. 나는 [버그를보고한다] (https://github.com/ekonbenefits/impromptu-interface/issues) –