c# 3.0中的动作
本文关键字: | 更新日期: 2023-09-27 18:07:13
我正在编写一个c# . net 3.0对WCF服务的异步调用。我得到以下错误:
错误1使用泛型类型"System"。操作'需要'1'类型参数。
但是在。net 3.5中这样做时不会出现错误。. net 3.0不支持这个吗?或者我做错了。我必须使用。net 3.0,因为我正在为XPe编写一个应用程序。
我的代码是这样的
AsyncCallback aSyncCallBack =
delegate(IAsyncResult result)
{
try
{
service.EndSubscribe(result);
this.Dispatcher.BeginInvoke((Action)delegate
{ DGStudent.ItemsSource = test; });
}
catch (Exception ex)
{
this.Dispatcher.BeginInvoke((Action)delegate
{ MessageBox.Show(ex.Message); });
}
};
非泛型System.Action
是在。net 3.5中引入的,不能从。net 3.0中使用。编译器认为您指的是需要类型参数的泛型System.Action<T>
。
除了Action<T>
之外的所有Action
委托都是在。net 3.5中添加的;它们在3.0中不可用。如果你看一下文档,Action
文档只有3.5和4.0的版本,而Action<T>
文档回到了2.0。
您必须创建自己的无参数委托版本,或者使用类似于winforms中的MethodInvoker
的东西。