2009-07-19 1 views
2

이벤트 및 대리인을 해결하는 데 어려움이 있습니다. 특정 이벤트가 발생할 때 이벤트를 반환하는 외부 API에 연결하려고합니다. 원래 코드는 C#으로 작성되었으며 VB.NET에서이 작업을 수행하려고합니다.VB.NET API 대리자 및 이벤트

다음은 API 프로그래머의 짧은 의견입니다. 모든 컬렉션은 이미 (계정 위치를 주문 상태 및 채우기) 세션 데이터로 채워집니다, OnLoginComplete 또는 succesfull 로그인의 원인에 OnLoginFailed, 그래서 응용 프로그램 :

"그 후

는 클라이언트 응용 프로그램은 이벤트 중 하나 기다릴 필요합니다 GUI에 표시 할 수 있습니다. 어떤 이유로 연결이 끊어지면 OnDisconnected 이벤트가 즉시 발생하여 연결이 복원 될 때까지 요청을 처리 할 수 ​​없음을 클라이언트에 알립니다 ..
성공적인 로그온 시스템에서 클라이언트 요청을 처리 할 준비가되었습니다. : 가격 피드 및 주문 요청에 대한 구독. "

나는 OnLoginFailed 이벤트를 발생시키지 만 너무 많은 문제로 인해이를 수행하는 방법을 모르고 많은 시간을 사용해 그것을 해결하려고 노력했습니다.

다음은 API 문서의 짧은 설명입니다.

OECClient.OnLoginFailed 이벤트 연결에 establised 할 수없는 경우 자격 증명이 잘못 또는 클라이언트 API 버전이 유효하다 제기
.

public event OnLoginFailedEvent OnLoginFailed; 

OnLoginFailedEvent 위임
는 VB.net 내 코드가 여기에 연결

public delegate void OnLoginFailedEvent(
    FailReason Reason 
); 

을 설립하는 데 실패 할 때 발생합니다 그리고, 나는 가까운 모르지만, 단지 수 있다고 생각 알았어.

Imports OEC.API 
Imports OEC.CommLib 

Public Class OpenECry 
    Public Shared OECClient1 As New OECClient() 

    Public Event OnLoginFailed() 
    Public Delegate Sub OEC_OnLoginFailedEvent(ByVal FailReason As OEC.Data.FailReason) 



    Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click 
     If txbUsername.Text = Nothing Or txbPassword.Text = Nothing Or txbServer.Text = Nothing Then 
      'Connect to the server, if the details are wrong then show the error message in the label. 
      MsgBox("One of your required fields are empty, Please try again.", MsgBoxStyle.Critical, "Application Error") 
     Else 
      'Catch Exception 
      ' 
      Try 
       OECClient1.Disconnect() 
       OECClient1.Connect(txbServer.Text, txbPort.Text, txbUsername.Text, txbPassword.Text, False) 


      Catch ex As Exception 
       MessageBox.Show(ex.Message) 
      End Try 
     End If 
    End Sub 

End Class 

더 많은 경험을 가진 사람이 나를 도와 줄 수 있다면 정말 감사 할 것입니다. 내가 필요한 모든 것이 하나의 예일 뿐이므로 모든 다른 사건을 스스로 할 수 있습니다.

답변

0

공개 방법을 시도해보십시오. 대의원 등은 필요하지 않습니다. 그 외, Handles 매개 변수가없는 C# 사용자 용입니다.

1

당신은 뭔가를 할 수 있어야합니다.

Public Sub OnLoginFailure() Handles OECClient1.OnLoginFailedEvent 
    'Do something upon failure here... 
End Sub 
+0

OECCLient1은 WithEvents로 선언해야합니다. – Wilhelm