방법: LCE(느슨하게 결합된 이벤트) 구현
코드 예제
다음 절차와 예제에서는 공용 이벤트 인터페이스와 이벤트를 발생시키는 게시자를 구현하는 이벤트 클래스 및 이벤트 싱크를 구현하는 방법을 보여 줍니다. COM+ LCE 모델 사용에 대한 자세한 내용은 LCE(느슨하게 결합된 이벤트)를 참조하십시오.
LCE를 구현하려면
이벤트 인터페이스를 정의합니다. 예를 들어, 다음 코드에서는
EventMethod
라는 메서드가 있는IlceMsg
라는 이벤트 인터페이스를 정의합니다.Public Interface ILceMsg Sub EventMethod(message As String) End Interface
public interface ILceMsg { void EventMethod(string message); }
System.EnterpriseServices.ServicedComponent 클래스에서 파생되는 이벤트 클래스를 정의하고 1단계에서 정의한 이벤트 인터페이스를 구현합니다. 예를 들어, 다음 코드에서는
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){} }
System.EnterpriseServices.ServicedComponent 클래스에서 파생되는 이벤트 싱크 클래스를 정의하고 1단계에서 정의한 이벤트 인터페이스를 구현합니다. 예를 들어, 다음 코드에서는
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 Class
public class LceSink : ServicedComponent, ILceMsg { public void EventMethod(string message) { MessageBox.Show(message, "Event sink"); } }
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 Sub
protected void Fire_Click (object sender, System.EventArgs e) { ILceMsg evt = (ILceMsg) new LceClass(); evt.EventMethod("Hello events"); }
예제
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");
}
참고 항목
참조
System.EnterpriseServices Namespace
개념
LCE(느슨하게 결합된 이벤트)
사용 가능한 COM+ 서비스 요약
Copyright © 2007 by Microsoft Corporation. All rights reserved.