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.
Das durch COM+ bereitgestellte Modell für lose verknüpfte Ereignisse unterstützt spät gebundene Ereignisse oder Methodenaufrufe zwischen Publisher und Abonnent und dem Ereignissystem. Anstatt wiederholt Abfragen an den Server zu senden, informiert das Ereignissystem Interessenten durch eine Meldung, wenn eine Information zur Verfügung steht.
Dieser Dienst kann nur von Ereignisklassen und Ereignisempfängern verwendet werden, die direkt oder indirekt von der System.EnterpriseServices.ServicedComponent-Klasse abgeleitet wurden.
Hinweis Um beständige oder flüchtige Abonnements zwischen dem Empfänger und der Ereignisklasse zu erstellen, sollten Sie COM+-Verwaltungsobjekte mit Skripts oder verwaltetem Code verwenden. Mit dem Verwaltungstool Komponentendienste können Sie auch flüchtige Abonnements erstellen, auf die aus der Windows-Systemsteuerung zugegriffen werden kann.
Im folgenden Beispiel werden eine Ereignisschnittstelle, ILceMsg genannt, eine Ereignisklasse, ein Ereignisempfänger und ein Publisher erstellt. Sowohl die Ereignisklasse als auch der Ereignisempfänger werden von der ILceMsg-Schnittstelle abgeleitet.
Ereignis
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
[C#]
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
[C#]
protected void Fire_Click (object sender, System.EventArgs e)
{
ILceMsg evt = (ILceMsg) new LceClass();
evt.EventMethod("Hello events");
}
Siehe auch
Zusammenfassung verfügbarer COM+-Dienste |System.EnterpriseServices-Namespace