Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Esempio di codice
Nella procedura e nell'esempio seguenti viene illustrato come implementare una classe e un sink di evento che utilizzano un'interfaccia eventi comune, oltre a un autore per generare un evento. Per ulteriori informazioni sull'utilizzo del modello di eventi loosely coupled di COM+, vedere Eventi loosely coupled.
Per implementare gli eventi loosely coupled
Definire un'interfaccia eventi. Nel codice seguente, ad esempio, viene definita un'interfaccia eventi denominata
IlceMsge dotata di un metodo denominatoEventMethod.Public Interface ILceMsg Sub EventMethod(message As String) End Interfacepublic interface ILceMsg { void EventMethod(string message); }Definire una classe di evento che deriva dalla classe System.EnterpriseServices.ServicedComponent e che implementa l'interfaccia eventi definita nel passaggio 1. Nel codice seguente, ad esempio, viene definita una classe di evento denominata
LceClass.<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){} }Definire una classe di sink di eventi che deriva dalla classe System.EnterpriseServices.ServicedComponent e che implementa l'interfaccia eventi definita nel passaggio 1. Nel codice seguente, ad esempio, viene definita una classe di sink di eventi denominata
LceSink.<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"); } }Creare un autore di eventi per attivare la classe LCE.
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"); }
Esempio
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");
}
Vedere anche
Riferimenti
System.EnterpriseServices Namespace
Concetti
Eventi loosely coupled
Riepilogo dei servizi COM+ disponibili
.gif)
Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.