Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Codebeispiel
Das folgende Beispiel und Verfahren zeigt, wie eine Ereignisklasse und eine Ereignissenke implementiert werden, die eine gemeinsame Ereignisschnittstelle implementieren sowie einen Herausgeber zum Auslösen eines Ereignisses. Weitere Informationen zum Verwenden des COM+-Modells flexibel verknüpfter Ereignisse (Loosely Coupled Events, LCE) finden Sie unter Flexibel verknüpfte Ereignisse.
So implementieren Sie flexibel verknüpfte Ereignisse
Definieren Sie ein Ereignisschnittstelle. Im folgenden Code wird beispielsweise eine Ereignisinstanz namens
IlceMsgdefiniert, die über eine Methode namensEventMethodverfügt.Public Interface ILceMsg Sub EventMethod(message As String) End Interfacepublic interface ILceMsg { void EventMethod(string message); }Definieren Sie eine Ereignisklasse, die von der System.EnterpriseServices.ServicedComponent-Klasse abgeleitet wird und die in Schritt 1 definierte Ereignisschnittstelle implementiert. Im folgenden Code wird beispielsweise eine Ereignisklasse namens
LceClassdefiniert.<EventClass()> _ Public Class LceClass Inherits ServicedComponent Implements ILceMsg Public Sub EventMethod(message As String) implements _ ILceMsg.EventMethod End Sub End Class[EventClass] public class LceClass : ServicedComponent, ILceMsg { public void EventMethod(string message){} }Definieren Sie eine Ereignissenkenklasse, die von der System.EnterpriseServices.ServicedComponent-Klasse abgeleitet wird und die in Schritt 1 definierte Ereignisschnittstelle implementiert. Im folgenden Code wird beispielsweise eine Ereignissenkenklasse namens
LceSinkdefiniert.<EventClass()> _ Public Class LceSink Inherits ServicedComponent Implements ILceMsg Public Sub EventMethod(message As String) implements _ ILceMsg.EventMethod MessageBox.Show(message, "Event sink") End Sub End Classpublic class LceSink : ServicedComponent, ILceMsg { public void EventMethod(string message) { MessageBox.Show(message, "Event sink"); } }Erstellen Sie einen Ereignisherausgeber, um flexibel verknüpfte Ereignisse (LCE) auszulösen.
Protected Sub Fire_Click(sender As Object, e As System.EventArgs)_ Handles fireEvent.Click Dim evt As ILceMsg = CType(New LceClass(), ILceMsg) evt.EventMethod("Hello events") End Subprotected void Fire_Click (object sender, System.EventArgs e) { ILceMsg evt = (ILceMsg) new LceClass(); evt.EventMethod("Hello events"); }
Beispiel
Imports System
Imports System.IO
Imports System.Reflection
Imports System.EnterpriseServices
Imports System.Runtime.InteropServices
<assembly: ApplicationName("EventDemo")>
<assembly: ApplicationActivation(ActivationOption.Library)>
<assembly: AssemblyKeyFile("EventDemoSvr.snk")>
Namespace EventDemo
Public Interface ILceMsg
Sub EventMethod(message As String)
End Interface
<EventClass()> _
Public Class LceClass
Inherits ServicedComponent Implements ILceMsg
Public Sub EventMethod(message As String) implements _
ILceMsg.EventMethod
End Sub
End Class
Public Class LceSink
Inherits ServicedComponent Implements ILceMsg
Public Sub EventMethod(message As String) implements _
ILceMsg.EventMethod
MessageBox.Show(message, "Event sink")
End Sub
End Class
End Namespace
using System;
using System.IO;
using System.Reflection;
using System.EnterpriseServices;
using System.Runtime.InteropServices;
[assembly: ApplicationName("EventDemo")]
[assembly: ApplicationActivation(ActivationOption.Library)]
[assembly: AssemblyKeyFile("EventDemoSvr.snk")]
namespace EventDemo
{
public interface ILceMsg
{
void EventMethod(string message);
}
[EventClass]
public class LceClass : ServicedComponent, ILceMsg
{
public void EventMethod(string message){}
}
public class LceSink : ServicedComponent, ILceMsg
{
public void EventMethod(string message)
{
MessageBox.Show(message, "Event sink");
}
}
}
Publisher
Protected Sub Fire_Click(sender As Object, e As System.EventArgs)_
Handles fireEvent.Click
Dim evt As ILceMsg = CType(New LceClass(), ILceMsg)
evt.EventMethod("Hello events")
End Sub
//Publisher
protected void Fire_Click (object sender, System.EventArgs e)
{
ILceMsg evt = (ILceMsg) new LceClass();
evt.EventMethod("Hello events");
}
Siehe auch
Referenz
System.EnterpriseServices Namespace
Konzepte
Flexibel verknüpfte Ereignisse
Zusammenfassung der verfügbaren COM+-Dienste
.gif)
Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.