2011-08-03 2 views
0

최근 비동기 작업을 처리하기 위해 WCF 서비스를 사용하는 Silverlight 웹 프로젝트를 상속 받았습니다. 필자는 최근 새로운 기능을 추가하여 기본적으로 이미 있던 기능의 기능을 복사했지만이 새로운 기능은 손상되었습니다. 비동기 메서드가 호출되면 인수 중 하나가 전달되지 않은 것처럼 보입니다. 대신 호출 된 메서드에서 null입니다.BeginInvoke 인수가 서비스에서 null로 나오다

public IAsyncResult BeginAssignTrucks(OutageGroupSafe outageGroup, List<Truck> trucksArrived, List<Truck> trucksRacked, AsyncCallback callback, object asyncState) 
{ 
    return BeginInvoke("AssignTrucks", 
     new object[] { outageGroup, trucksArrived, trucksRacked }, 
     callback, 
     asyncState); 
} 

OutageGroupSafe 사용자 정의 타입 : 여기

서비스를 호출하는 방법입니다. 당신은 또한 타입이 List<Truck> 인 두 객체를 전달한다는 것을 알 수 있습니다. 나는 매개 변수 outage가 null 볼, 나는 그 함수에 중단 점을 설정하면

public OperationBase AssignTrucks(OutageGroupSafe outage, List<Truck> trucksArrived, List<Truck> trucksRacked) 
{ 
    // there is stuff here but it really doesn't matter what it is for the purposes of this question 
} 

:

그럼 프로그램의 흐름은 결국 웹 서비스에 이상 취득하고, AssignTrucks 방법 나는 요구 다른 함수에서 전달 된 매개 변수가 아니더라도! 더 많은 것은 인 무엇, 2 List는 완전하게 정밀하다. 비슷한 호출에 대해이 호출에 대해 백 번 내 코드를 검사 한 결과가 없습니다. 인 것 같습니다. 다른 방법으로 문제가없는 OutageGroupSafe 유형의 객체를 보낼 수 있습니다. 문제가되고있는 것이 바로이 새로운 것입니다. 유형이 인 경우에도 문제가되지 않습니다. int을 전달하면 계속 손상됩니다.

목록이 아닌데도 내 개체가 서비스로가는 도중에 어떻게 먹습니까?

답변

0

오류가 발생하지 않고 자동으로 오류가 발생하는 유형 불일치가 있었음에 틀림 없습니다. 나는 모든 나의 주장을 int s로 바꿨다. 정말 어리 석다. 이 일의 대부분을 낭비했다.

0

DataContracts로 주석이 지정된 유형 (OutageGroupSafeTruck)이 있습니까? 그리고 관련 회원들은 데이터 멤버로 주석을 달았습니까?

+0

그래, 이미 작동하는 다른 방법에 사용됩니다. 'OutageGroupSafe'를 단지'int'로 변경하더라도 여전히 작동하지 않을 것입니다 (0으로 나옵니다). –

관련 문제