방법: 서비스 구성 요소 만들기
다음 절차에서는 새로운 서비스 구성 요소를 만드는 방법에 대해 설명합니다.
서비스 구성 요소를 만들려면
ServicedComponent 클래스에서 직접 또는 간접 파생되는 클래스를 정의합니다. 예를 들어, 다음 코드를 사용하면
Calculator
클래스가 COM+ 응용 프로그램에서 호스팅됩니다.Imports System.EnterpriseServices Public Class Account Inherits ServicedComponent Function Add (x as Integer, y as Integer) As Integer Add = x + y End Function End Class
using System.EnterpriseServices; public class Calculator : ServicedComponent { public int Add (int x, int y) { return(x+y); } }
특성을 적용해 각 어셈블리, 클래스 또는 메서드가 COM+ 기능과 상호 작용하는 방식을 나타냅니다.
참고:
.NET Framework 버전 1.1에서는 어셈블리에 ApplicationAccessControlAttribute 특성이 없을 경우에 COM+ 보안 구성이 기본적으로 사용됩니다. 이는 .NET Framework 버전 1.0에서 업그레이드되면서 변경된 동작입니다.
<Assembly: ApplicationName(“Calculator”)> <Assembly: System.Reflection.AssemblyKeyFile(“Calculator.snk”)> <MustRunInClientContext> _ Public Class Account Inherits ServicedComponent ‘ Member definitions. End Class
[assembly: ApplicationName("Calculator")] [assembly: System.Reflection.AssemblyKeyFile("Calculator.snk")] [MustRunInClientContext] public class Calculator : ServicedComponent { // Member definitions. }
강력한 키를 생성하고 다음 예제를 컴파일합니다.
sn –k Calculator.snk vbc /t:library /r:System.EnterpriseServices.dll Calculator.vb
sn –k Calculator.snk csc /t:library /r:System.EnterpriseServices.dll Calculator.cs
해당 어셈블리를 동적으로 또는 수동으로 등록하여 서비스 구성 요소 응용 프로그램을 배포합니다.
서비스 구성 요소가 등록되면 클라이언트에서는 다른 구성 요소의 인스턴스를 만들듯이 해당 구성 요소의 인스턴스를 만들 수 있습니다. 완전한 샘플을 보려면 서비스 구성 요소 예제를 참조하십시오.
참고:
Windows 2000 플랫폼에서 COM+는 사용자가 만드는 구성 요소에 대해 항상 최신 버전의 공용 언어 런타임을 로드합니다. 즉, .NET Framework 1.0과 1.1이 모두 설치되어 있는 컴퓨터에서는 항상 .NET Framework 1.1이 로드됩니다. 이를 피하기 위해 특정 버전의 .NET Framework에 대해 모든 응용 프로그램을 "잠글" 수 있도록 하는 COM+ dllhost.exe 구성 파일을 만들 수 있습니다. Windows XP 및 Windows Server 2003 플랫폼에서는 응용 프로그램 루트 디렉터리 설정을 사용하여 COM+가 해당 구성 파일의 디렉터리를 가리키도록 지정할 수 있습니다.
예제
Imports System.EnterpriseServices
<Assembly: ApplicationName(“Calculator”)>
<Assembly: System.Reflection.AssemblyKeyFile(“Calculator.snk”)>
<MustRunInClientContext> _
Public Class Account
Inherits ServicedComponent
Function Add (x as Integer, y as Integer) As Integer
Add = x + y
End Function
End Class
using System.EnterpriseServices;
[assembly: ApplicationName("Calculator")]
[assembly: System.Reflection.AssemblyKeyFile("Calculator.snk")]
[MustRunInClientContext]
public class Calculator : ServicedComponent
{
public int Add (int x, int y)
{
return(x+y);
}
}
참고 항목
참조
개념
특성을 적용하여 COM+ 서비스 구성
서비스 구성 요소 등록
서비스 구성 요소 예제
사용 가능한 COM+ 서비스 요약
기타 리소스
Copyright © 2007 by Microsoft Corporation. All rights reserved.