Silverlight 2.0 Silverlight异步调用返回的对象将丢失其包含的聚合

Silverlight 2.0 Silverlight异步调用返回的对象将丢失其包含的聚合,silverlight-2.0,asynchronous,Silverlight 2.0,Asynchronous,通过MyWebServiceNameEventArgs返回的Silverlight 2.0控件对WebService的调用未返回包含的列表聚合。例如,我有一个Person类,它有一个List和List。当我跟踪通话时,我看到通话的人的列表被适当地填充了。但是,当它通过MyWebServiceNameEventArgs到达时,列表为空。像FirstName、DOB等简单类型被正确返回 我需要做些什么才能把随附的骨料退回吗 这是我的密码: private void btnGetPerson_Clic

通过MyWebServiceNameEventArgs返回的Silverlight 2.0控件对WebService的调用未返回包含的列表聚合。例如,我有一个Person类,它有一个List和List。当我跟踪通话时,我看到通话的人的列表被适当地填充了。但是,当它通过MyWebServiceNameEventArgs到达时,列表为空。像FirstName、DOB等简单类型被正确返回

我需要做些什么才能把随附的骨料退回吗

这是我的密码:

private void btnGetPerson_Click(object sender, RoutedEventArgs e)
{
  var proxy = new TutorWCFServicesClient();
  proxy.GetPersonWithPersonKeyOfCompleted += new EventHandler<GetPersonWithPersonKeyOfCompletedEventArgs>(proxy_GetPersonWithPersonKeyOfCompleted);
  var perID = 29; // testing
  proxy.GetPersonWithPersonKeyOfAsync(perID);
}

void proxy_GetPersonWithPersonKeyOfCompleted(object sender, GetPersonWithPersonKeyOfCompletedEventArgs e)
{
  var per = e.Result;
  if (per != null)
  {
    FirstName.Text = per.FirstName;
    LastName.Text = per.LastName;
    if (per.Phones != null)
    {
      var hPhone = (from phone in per.Phones where phone.PhoneType.ToLower() == "home" select phone).FirstOrDefault();
      var cPhone = (from phone in per.Phones where phone.PhoneType.ToLower() == "cell" select phone).FirstOrDefault();
      var wPhone = (from phone in per.Phones where phone.PhoneType.ToLower() == "work" select phone).FirstOrDefault();

      if (hPhone != null)
      {
        PhoneHome.Text = string.Format("({0}) {1}-{2}", hPhone.AreaCode, hPhone.Exchange, hPhone.Number);
      }
      if (cPhone != null)
      {
        PhoneCell.Text = string.Format("({0}) {1}-{2}", cPhone.AreaCode, cPhone.Exchange, cPhone.Number);
      }
      if (wPhone != null)
      {
        PhoneSchool.Text = string.Format("({0}) {1}-{2}", wPhone.AreaCode, wPhone.Exchange, wPhone.Number);
      }
    }
  }
  else
  {
    FirstName.Text = "Not Found";
  }
}
private void btnGetPerson\u单击(对象发送方,路由目标)
{
var proxy=new TutorWCFServicesClient();
proxy.GetPersonWithPersonKeyOfCompleted+=新事件处理程序(proxy\u GetPersonWithPersonKeyOfCompleted);
var perID=29;//测试
proxy.GetPersonWithPersonKeyOfAsync(perID);
}
void proxy_GetPersonWithPersonKeyOfCompleted(对象发送方,GetPersonWithPersonKeyOfCompletedEventArgs e)
{
var per=e.结果;
如果(每!=null)
{
FirstName.Text=per.FirstName;
LastName.Text=per.LastName;
if(per.Phones!=null)
{
var hPhone=(从每个.Phones中的phone,其中phone.PhoneType.ToLower()==“home”选择phone.FirstOrDefault();
var cPhone=(从每个.Phones中的phone,其中phone.PhoneType.ToLower()==“手机”选择phone.FirstOrDefault();
var wPhone=(从每个.Phones中的phone,其中phone.PhoneType.ToLower()==“工作”选择phone.FirstOrDefault();
如果(hPhone!=null)
{
PhoneHome.Text=string.Format(({0}{1}-{2}),hPhone.AreaCode,hPhone.Exchange,hPhone.Number);
}
if(cPhone!=null)
{
PhoneCell.Text=string.Format(({0}{1}-{2}),cPhone.AreaCode,cPhone.Exchange,cPhone.Number);
}
if(wPhone!=null)
{
PhoneSchool.Text=string.Format(“({0}){1}-{2}”,wPhone.AreaCode,wPhone.Exchange,wPhone.Number);
}
}
}
其他的
{
FirstName.Text=“未找到”;
}
}

愚蠢的错误,我忘了刷新Silverlight应用程序中的ServiceReference。

愚蠢的错误,我忘了刷新Silverlight应用程序中的ServiceReference。

我去过那里,相信我:-)我把头撞在桌子上,试图找出哪里出了问题+1.我去过那里,相信我:-)我把头撞在桌子上,试图找出哪里出了问题+1.