Hören Sie auf Ereignisse in einer anderen Anwendung

Angenommen, ich habe zwei Anwendungen in C # geschrieben. Die erste ist eine Drittanbieteranwendung, die ein Ereignis namens "OnEmailSent" auslöst.

Die zweite ist eine benutzerdefinierte App, die ich geschrieben habe und die ich irgendwie für "OnEmailSent" abonnieren möchte, sogar für die erste Anwendung.

Kann ich irgendwie die zweite Anwendung an eine Instanz der ersten Anwendung anhängen, um auf das Ereignis "OnEmailSent" zu warten?

Mein spezielles Szenario ist daher, dass wir eine benutzerdefinierte Drittanbieteranwendung haben, die in c # geschrieben ist und ein "OnEmailSent" -Ereignis auslöst. Wir können sehen, dass das Ereignis mit Reflektor existiert.

Wir möchten, dass andere Aktionen ausgeführt werden, wenn diese Komponente eine E-Mail sendet.

Der effizienteste Weg, den wir uns vorstellen können, besteht darin, eine IPC-Form zu verwenden, die anders vorgeschlagen wurde, und auf das OnEmailSent-Ereignis zu warten, das von der Komponente eines Drittanbieters ausgelöst wird.

Da die Komponente in C # geschrieben ist, spielen wir mit der Idee, eine andere C # -Anwendung zu schreiben, die sich an den ausgeführten Prozess anhängen kann, und wenn sie feststellt, dass das OnEmailSent-Ereignis ausgelöst wurde, führt sie ihren eigenen Ereignishandhabungscode aus.

Möglicherweise fehlt etwas, aber ich verstehe, wie Remoting funktioniert, dass ein Server erforderlich ist, der eine Art Vertrag definiert, den der Client abonnieren kann.

Ich habe mehr über ein Szenario nachgedacht, in dem jemand eine eigenständige Anwendung wie Outlook geschrieben hat, die Ereignisse enthüllt, die ich von einer anderen Anwendung abonnieren möchte.

Ich denke, das Szenario, an das ich denke, ist der .net-Debugger und wie er sich an die Ausführung von Assemblys anfügen lässt, um den Code während der Ausführung zu überprüfen.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage