최근 비동기 작업을 처리하기 위해 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
을 전달하면 계속 손상됩니다.
목록이 아닌데도 내 개체가 서비스로가는 도중에 어떻게 먹습니까?
그래, 이미 작동하는 다른 방법에 사용됩니다. 'OutageGroupSafe'를 단지'int'로 변경하더라도 여전히 작동하지 않을 것입니다 (0으로 나옵니다). –