C# Silverlight 4访问WCF数据服务:引发挫折
我试图遵循使用Silverlight 4 beta执行WCF数据服务查询的模式。以下是我的代码:C# Silverlight 4访问WCF数据服务:引发挫折,c#,wcf,silverlight,service,begininvoke,C#,Wcf,Silverlight,Service,Begininvoke,我试图遵循使用Silverlight 4 beta执行WCF数据服务查询的模式。以下是我的代码: public CodeTables() { CodeCountries = new ObservableCollection<dsRealHomes.CodeCountries>(); dsRealHomes.RealHomesEntities myClient = null; myClient = staticGloba
public CodeTables()
{
CodeCountries = new ObservableCollection<dsRealHomes.CodeCountries>();
dsRealHomes.RealHomesEntities myClient = null;
myClient = staticGlobals.RealHomesContext();
object userState = null;
myClient.BeginExecute<dsRealHomes.CodeCountries>(new Uri("CodeCountries"),
(IAsyncResult asyncResult) =>
{
Dispatcher.BeginInvoke(
() =>
{
var test = myClient.EndExecute<dsRealHomes.CodeCountries>asyncResult).ToList();
}
);
}, userState);
}
公共代码表()
{
CodeCountries=新的ObservableCollection();
dsRealHomes.realHomes实体myClient=null;
myClient=staticGlobals.realHomeContext();
对象userState=null;
myClient.BeginExecute(新Uri(“CodeCountries”),
(IAsyncResult asyncResult)=>
{
调度程序。开始启动(
() =>
{
var test=myClient.EndExecuteasyncResult.ToList();
}
);
},用户状态);
}
这是从我遇到的许多使用silverlight的WCF数据服务示例中派生出来的。不幸的是,无论我如何尝试实现代码,我最终都会在“Dispatcher.BeginInvoke”上出现以下错误:
'非静态字段、方法或属性(System.Windows.Threading.Dispatcher.BeginInvoke(System.Action))需要对象引用'
好吧,我想我现在有了答案。似乎因为我是从类文件而不是从UI文件(如页面)实例化BeginInvoke,所以没有使用UI调度程序(如果这有意义的话)。使用本文中的线索:
我使用了支持的UIThread静态类,并将RootVisual.Dispatcher分配给它。现在在我的代码中,我使用的是“UIThread.Run”,而不是“Dispatcher.BeginInvoke”。它可以正常工作。好吧,我想我现在知道答案了。这似乎是因为我是从类文件而不是从UI文件(例如页面)实例化BeginInvoke的未使用UI dispatcher(如果有意义的话)。使用本文中的线索: 我使用了支持的UIThread静态类,并将RootVisual.Dispatcher分配给它。现在在我的代码中,我使用的不是“Dispatcher.BeginInvoke”,而是“UIThread.Run”。它可以正常工作