C# Silverlight 4访问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

我试图遵循使用Silverlight 4 beta执行WCF数据服务查询的模式。以下是我的代码:

    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”。它可以正常工作