2009-02-27 3 views
1

Silverlight 2.0 컨트롤에서 MyWebServiceNameEventArgs를 통해 반환 된 WebService에 대한 호출이 포함 된 List <> 집계를 반환하지 않습니다. 예를 들어 List와 List가있는 Person 클래스가 있습니다. 전화를 추적 할 때 목록에있는 사람이 적절하게 채워지는 것을 알 수 있습니다. 그러나 MyWebServiceNameEventArgs를 통해 도착하면 목록은 null입니다. FirstName, DOB 등의 간단한 유형이 올바르게 반환됩니다.Silverlight 비동기 호출에서 반환 된 개체에서 포함 된 집계가 손실됩니다.

동봉 된 집계가 반환되도록하기 위해해야 ​​할 일이 있습니까?

여기 내 코드입니다 :

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"; 
    } 
} 

답변

1

멍청한 오류, 나는 실버 라이트 응용 프로그램에서 ServiceReference를 새로 잊어 버렸습니다.

+0

나는 거기에 있었고, 나를 믿어 :-) 나는 무엇이 잘못되었는지를 파악하려고 내 책상에 머리를 내 렸습니다. +1. –

관련 문제