내보내기(0) 인쇄
모두 확장

ServicedComponent 클래스

업데이트: 2007년 11월

COM+ 서비스를 사용하는 모든 클래스의 기본 클래스를 나타냅니다.

네임스페이스:  System.EnterpriseServices
어셈블리:  System.EnterpriseServices(System.EnterpriseServices.dll)

[SerializableAttribute]
public abstract class ServicedComponent : ContextBoundObject, 
	IRemoteDispatch, IDisposable, IServicedComponentInfo
/** @attribute SerializableAttribute */ 
public abstract class ServicedComponent extends ContextBoundObject implements IRemoteDispatch, 
	IDisposable, IServicedComponentInfo
public abstract class ServicedComponent extends ContextBoundObject implements IRemoteDispatch, IDisposable, IServicedComponentInfo

경우에 따라 COM+ 응용 프로그램에서 실행되는 ServicedComponent에서 파생된 클래스는 응답하지 않을 수도 있습니다. 이 문제는 작업 교착 상태 때문에 발생합니다. 구성 요소 참조의 비동기 정리 때문에 다중 스레드 응용 프로그램에서 작업이 교착 상태에 빠질 수 있습니다. 이 문제를 해결하려면 ServicedComponent에서 파생된 개체와 관련된 작업을 완료한 후 Dispose 메서드를 호출하십시오. 자세한 내용은 http://support.microsoft.com/default.aspx?scid=kb;en-us;327443을 참조하십시오.

참고:

클라이언트 코드에서는 서비스되는 구성 요소의 Dispose를 호출해야 작업이 제대로 수행됩니다.

다음 코드 예제에서는 클래스를 구성된 COM 구성 요소로 노출하는 방법을 보여 줍니다.

using System;
using System.EnterpriseServices;

[assembly: ApplicationName("Calculator")]
[assembly: ApplicationActivation(ActivationOption.Library)]
[assembly: System.Reflection.AssemblyKeyFile("Calculator.snk")]
public class Calculator : ServicedComponent
{
    public int Add (int x, int y)
    {
        return(x+y);
    }
}


import System.*;
import System.EnterpriseServices.*;

/** @assembly ApplicationName("Calculator")
 */
/** @assembly ApplicationActivation(ActivationOption.Library)
 */
/** @assembly System.Reflection.AssemblyKeyFile("Calculator.snk")
 */
public class Calculator extends ServicedComponent
{
    public int Add(int x, int y)
    {
        return x + y;
    } //Add
} //Calculator


이 클래스를 구성된 COM 구성 요소로 배포하려면 강력한 키를 생성하고, 클래스를 라이브러리로 컴파일한 다음 해당 라이브러리를 등록해야 합니다. 이 세 단계 작업은 다음 세 개의 명령으로 수행할 수 있습니다.

 sn -k Calculator.snk
 csc /t:library Calculator.cs
 regsvcs Calculator.dll

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

.NET Framework

3.5, 3.0, 2.0, 1.1, 1.0에서 지원

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft