Lernen von INGO RAMMER des "Advanced .NET Remoting" Ich habe versucht, die folgenden Codes zu verwenden, um Ereignisse zu Kunden Brennen:Ereignis Problem in .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;
}
}
Wenn ich ein Netzwerkproblem in Client-Seite simuliert, der Delegat des Clients wurde wie erwartet von - = entfernt, und MessageArrived wurde zu null.
Aber als das Netzwerk wiederhergestellt wurde, wird der Client versuchen, eine Verbindung herzustellen, Remote-Objekt abrufen und Ereignis neu registrieren, wie es für den Start tut, scheint die Neu-Registrierung erfolgreich war, da die MessageArrived nicht null war.
Das Problem ist, ich habe immer noch die Ausnahme wird den Delegaten aufrufen, die dann entfernt wurde. Soweit ich weiß, soll dies nicht zur Erhöhung der Bekanntheit führen. der Client ist wieder online und wieder verbinden() und verbinden() -Methode teilt die gleichen Codes ...
Kann mir jemand helfen?