내 동료가 다음과 같은 문제가 항상 해당 ID와 일치하는 개체를 찾으십시오. 일치하는 개체는 비동기 "완료된"처리기를 통해 Silverlight 응용 프로그램에 반환됩니다. Silverlight 측의 호출은 루프로 이루어지며 WCF는 데이터베이스 액세스를 수행하고 개체를 찾아 업데이트 한 다음 반환합니다. Silverlight 완료 처리기는 반환을 캐치하고 개체를 다시 컬렉션에 채 웁니다.는 비동기 처리기에서 반환 값은 같은
어떤 이유로 인해 수신 된 객체 목록이 모두 동일한 객체입니다. 중단 점을 사용하여 Silverlight 응용 프로그램은 올바른 개체를 보내고 WCF는 올바른 개체를 받고 반환하지만 개체를 받으면 Silverlight 응용 프로그램은 같은 개체를 반복해서 계속 가져옵니다 (그러나 올바른 개체 수가 반환됩니다). 마지막으로
Private Sub sendObjects(Byval sales As List(Of Integer))
For Each saleID As Integer in sales
AddHandler hlxService.SaveBankTransactCompleted, _
AddressOf SaveBankTransactCompleted
hlxService.SaveBankTransactAsync(saleID)
End For
End Sub
Private Sub SaveBankTransactCompleted(
sender As Object,
e As SaveBankTransactCompletedEventArgs)
RemoveHandler hlxService.SaveBankTransactCompleted, _
AddressOf SaveBankTransactCompleted
saleCollection.add(e.Result)
' Check if all objects have been returned.
CheckPaymentStatus()
End Sub
과 (간체) WCF 서비스 기능 :
<OperationContract()>
Public Function SaveBankTransact(
ByVal saleID as Integer) As hlxSale
Dim newSale as hlxSale
newSale = findSaleById(saleID)
' Process some data from database, put values into newSale
Return newSale
End Function
우리는 주위에 방법을 발견
샘플은 아래의 문제 (단순화 된 버전이 아닌 실제 코드)를 설명하기 위해 문제는 컬렉션 전체를 보내고받는 것만으로도 원래 문제의 원인이 무엇인지 궁금해 할 것입니다.
WCF에 어떤 바인딩을 사용합니까? –
@ ArnonRotem-Gal-Oz basicHttpBinding은 ServiceReferences.ClientConfig의 내용입니다. –