【发布时间】:2011-09-11 20:19:46
【问题描述】:
我是 .NET 的新手,我以前的工作是 PLC 程序员。我有旧的应用程序,在其中我使用了 .NET 的响应式扩展。
我很久没有维护这个应用程序了。现在我下载了 Reactive Extension 的新版本,但我在使用旧代码时遇到了问题。
我知道 Rx 中的某些部分已更改。
这是一个有问题的旧代码:
Observable.FromEvent<PropertyChangedEventArgs>(this, "PropertyChanged")
.Where(e => e.EventArgs.PropertyName == "Nick")
.Select(_ => this.Nick)
.Where(text => text.Length > 3)
.Do(LoadUser)
.Throttle(TimeSpan.FromSeconds(3000))
.Subscribe(LoadUser);
我得到了这个例外:
Error 3 Argument 1: cannot convert from 'Spirit.ViewModels.AddFriendViewModel' to 'System.Action<System.Action<System.ComponentModel.PropertyChangedEventArgs>>' E:\C#_Projects\Pokec_Messenger\Spirit_Caliburn_Micro_v1.0\ViewModels\AddFriendViewModel.cs 123 60 Spirit_Caliburn_Micro_v1.0
Error 4 Argument 2: cannot convert from 'string' to 'System.Action<System.Action<System.ComponentModel.PropertyChangedEventArgs>>' E:\C#_Projects\Pokec_Messenger\Spirit_Caliburn_Micro_v1.0\ViewModels\AddFriendViewModel.cs 123 65 Spirit_Caliburn_Micro_v1.0
Error 2 The best overloaded method match for 'System.Reactive.Linq.Observable.FromEvent<System.ComponentModel.PropertyChangedEventArgs>(System.Action<System.Action<System.ComponentModel.PropertyChangedEventArgs>>, System.Action<System.Action<System.ComponentModel.PropertyChangedEventArgs>>)' has some invalid arguments E:\C#_Projects\Pokec_Messenger\Spirit_Caliburn_Micro_v1.0\ViewModels\AddFriendViewModel.cs 123 13 Spirit_Caliburn_Micro_v1.0
我不知道在新版本中必须使用哪种方法才能获得相同的功能。
感谢您的建议。
【问题讨论】:
标签: c# observer-pattern system.reactive