0
학습 INGO RAMMER의 "고급 .NET Remoting에"내가 고객에게 이벤트를 발사에 대해 다음 코드를 사용하려고에서
foreach (Delegate del in MessageArrived.GetInvocationList())
{
try
{
mah = (MessageArrivedHandler) del;
mah(msg);
}
catch (Exception e)
{
Console.WriteLine("Exception occured, will remove Delegate");
MessageArrived -= mah;
}
}
내가 클라이언트 측에서 네트워크 문제 시뮬레이션, 클라이언트의 대리자가 - =로 예상대로 제거되었으며 MessageArrived는 null이되었습니다.
그러나 네트워크가 복원되면 클라이언트는 연결을 시도하고 원격 객체를 가져오고 시작시 동일한 이벤트를 다시 등록하므로 MessageArrived가 null이 아니기 때문에 재 등록이 성공한 것처럼 보입니다.
문제는 여전히 제거 된 대리자를 호출 할 예외가 있습니다. 내가 알기로, 이것은 expcetion coz를 일으키지 않을 것이다. 클라이언트가 다시 온라인 상태가되고 connect() 메소드가 같은 코드를 공유합니다 ...
아무도 도와 줄 수 있습니까?