Hallo ich nicht ganz gut verstehe Ihre Frage, aber ich werde versuchen, die Art und Weise habe ich zu beantworten. Wenn Sie einen WCF-Dienst referenzieren, wie Sie wissen, werden Proxy-Klassen im Client-Projekt generiert. Diese Proxy-Klassen teilen sich die Schnittstelle des gleichen Datenelements, die auf der Serverseite liegt, aber nicht das Verhalten. So sind beispielsweise alle Eigenschaften vom Client aus zugänglich, nicht aber Ereignisse, Methoden und so weiter. Vielleicht können Sie schreiben, was Sie erreichen wollen, und wir können Ihnen helfen?
aktualisieren
Ok, jetzt denke ich, ich verstehe. Nun, das ist eine Lösung, um jedes Ereignis zu entfernen, das nicht ausgelöst werden sollte, bevor Sie die AddNumber-Methode ausführen. Eine andere Lösung besteht darin, Anrufklassen zu verfolgen. zum Beispiel
public static ArrayList eventObjects = new ArrayList(); //Declare a global array list which will be accessible from all classes
eventObjects.Add(this); //Before calling AddNumber method
_client.AddNumber += new EventHandler<AddNumberCompletedEventArgs>(_client_AddNumberCompleted);
void _client_AddNumberCompleted(object sender, AddNumberCompletedEventArgs e)
{
if(ar.Contains(this))
{
//Do what you want to do here. Other classes will receive this event too, but they will not react.
eventObjects.Remove(this);
}
}
Allerdings muss ich Sie warnen, dass dies nicht der beste Ansatz ist. Ich kann dir keinen besseren Weg vorschlagen, weil ich nicht weiß, was du erreichen willst.
Ich denke, das ist nicht der beste Weg, denn wenn 2 Klasse die gleiche Methode zur gleichen Zeit aufrufen. Ich hoffe jemand findet eine bessere Lösung .. :) – Werewolve