2011-10-03 29 views
1

저는 ASP.NET 웹 응용 프로그램에서 JdSoft의 APNS-Sharp 라이브러리를 사용하고 있습니다. 라이브러리는 C#으로 작성되었으며 스레딩 목적으로 Delegate Functions 및 Events를 광범위하게 사용합니다. 내 응용 프로그램은 VB.NET으로 작성, 나는 조금 혼란 스러워요됩니다 (C 번호) 다음 예제 코드를 변환하는 방법에 대한에 :VB.NET에서 C#으로 작성된 다음 이벤트/델리게이트를 어떻게 사용할 수 있습니까?

public delegate void OnError(object sender, Exception ex); 
public event OnError Error; 
다음은

.... 
//Wireup the events 
service.Error += new FeedbackService.OnError(service_Error); 
.... 
} 

static void service_Error(object sender, Exception ex) 
{ 
Console.WriteLine(...); 
} 

는 FeedbackService 클래스의 관련 구성원

기본적으로 VB.NET의 이벤트 (예 : 오류)에 service_Error와 같은 함수를 연결하는 방법을 알아 내려고합니다. 나는이 문맥에서 + = 문법이 무엇을 의미하는지에 대해 명확하지 않고, Visual Studio는 어떤 이유로 든 'VB.NET'코드로 'Error'이벤트에 직접 액세스 할 수 없다고 말합니다.

감사합니다.

+1

평상시처럼 이벤트에 가입하십시오. 시도한 것을 게시해야합니다. –

+0

솔직히 말해서 ASP.NET의 스레드는 실제로 사용하지 않았습니다. 나의 첫 번째 시도/연구 노력은 '결합'과 '추가 변경'과 같은 위임 방법에 관한 것이었다. 나는 틀린 길에서 명확히 거기에 가고 있었다. – Mirthquakes

+0

ASP.NET 응용 프로그램 내에서 이벤트를 등록하는 방법을 연구해야합니다. 하나의 큰 차이점은 세션과 ASP.NET 페이지의 다른 고유 한 문제에 대해 걱정해야한다는 것입니다. –

답변

3

방법의 대표리스트에있어서 추가 += 운영자는 기본적으로 FeedbackService.OnError 함수를 Error 호출 목록에 구독합니다. 따라서 Error 이벤트가 발생하면 OnError 메서드가 호출됩니다.

// define delelgate/event 
Public Delegate Sub OnError(sender As Object, ex As Exception) 
Public Event OnError Error 

// attach method to event 
AddHandler service.Error, service_Error 

는 VB.NET에서 몇 가지 예에 대한 How to: Raise and Consume Events 참조 :

은 VB.NET에 위의 코드를 변환하기 위해서는 같이 보일 것입니다.

+0

감사합니다. AddHandler 서비스를 사용하여 이벤트를 유선으로 가져올 수있었습니다 .Error, AddressOf service_Error – Mirthquakes

2
AddHandler service.Error, service_Error 
0

I는 I 두려워 VB는 구현에 모르겠지만, 델리게이트에 대하여 C에서 # + = 구문 (호출 목록)