2010-12-06 3 views
0

안녕
간단하지만, 어떻게 해야할지 모르겠다.
서버 측에서 발생하는 이벤트에 DLL을 서명하려고합니다.
클라이언트는이 DLL의 인스턴스를 가지고 있으며 서버에서 알림을 수신해야합니다.
WCF 서비스에서 소모되는 DLL로 이벤트 올리기

public delegate ActionResult ActionComplitedHandler(object sender,ActionComplitedEventArgs e); 

: 서비스에
나는 (C#)를 정의했다.

public event ActionComplitedHandler ActionComplited; 

     public void OnActionComplited(ActionResult actionResult) 
     { 
      if (ActionComplited != null) 
      { 
       ActionComplitedEventArgs args = new ActionComplitedEventArgs(); 
       args.ActionResult = actionResult; 
       ActionComplited(this, args); 
      } 
    } 

하지만 이벤트에 DLL을 서명하려고하면 볼 수 없습니다.

mySeriveInstance.ActionComplited+=... //(I don't get the eventHandler after the dot) 

WCF 콜백을 사용하지 않는 것이 좋습니다.
WCF 서비스 인스턴스는 단일입니다.
무엇이 잘못되었으며 다른 방법이 있습니까?
감사합니다.

+0

자동 완성 기능을 사용할 수 없거나 이벤트를 수신 할 수 없습니까? –

+0

자동 완성이 표시되지 않습니다. – Igal

답변

0

이 당신이 할 수있는 두 가지 기본 방법입니다 : 당신이 할 수있는) 자기 호스트 클라이언트 응용 프로그램에서 WCF 서비스를

1.하고 통화에서 클라이언트 컴퓨터의 IP 주소에 서버 패스에 . 그런 다음 서버는 프록시를 구성하고 이벤트를 보낼 때 클라이언트에 콜백 할 수 있습니다.

2.) 서버에서 이벤트를 자주 폴링 할 수 있습니다. 모든 클라이언트에게 서비스 응답에 식별자를 제공하면 해당 식별자로 서버를 자주 호출 할 수 있습니다. 서버 측 캐싱을 사용하여 전달되지 않은 이벤트 목록을 저장 한 다음 클라이언트가 해당 링크를 클릭하면 클라이언트에 대해 가장 오래된 이벤트를 반환 할 수 있습니다.