다음을 통해 공유


ServicedComponent 클래스

정의

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

public ref class ServicedComponent abstract : ContextBoundObject, IDisposable, System::EnterpriseServices::IRemoteDispatch, System::EnterpriseServices::IServicedComponentInfo
[System.Serializable]
public abstract class ServicedComponent : ContextBoundObject, IDisposable, System.EnterpriseServices.IRemoteDispatch, System.EnterpriseServices.IServicedComponentInfo
[<System.Serializable>]
type ServicedComponent = class
    inherit ContextBoundObject
    interface IRemoteDispatch
    interface IDisposable
    interface IServicedComponentInfo
Public MustInherit Class ServicedComponent
Inherits ContextBoundObject
Implements IDisposable, IRemoteDispatch, IServicedComponentInfo
상속
파생
특성
구현

예제

다음 코드 예제에서는 구성 된 COM 구성 요소로 클래스를 노출 하는 방법에 설명 합니다.


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

};
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);
    }
}

구성 된 COM 구성 요소와이 클래스를 배포 하려면 강력한 키를 생성, compile을 라이브러리로 클래스 및 라이브러리를 등록 해야 합니다. 다음 세 단계는 다음 세 가지 명령을 사용 하 여 수행 됩니다.

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

설명

특정 조건에서 파생 된 클래스에서 ServicedComponent COM + 애플리케이션에서 실행 응답을 중지할 수 있습니다. 이 문제는 작업 교착 상태에서 발생 합니다. 작업 구성 요소 참조의 비동기 정리로 인해 다중 스레드 애플리케이션에서 교착 상태 수 있습니다. 이 문제를 해결 하기 위해 호출 된 Dispose 에서 파생 된 개체를 사용 하 여 작업을 완료 하면 메서드가 ServicedComponent합니다.

참고

클라이언트 코드를 호출 해야 Dispose 에서 제대로 작동 하도록 구성 요소를 처리 합니다.

생성자

ServicedComponent()

ServicedComponent 클래스의 새 인스턴스를 초기화합니다.

메서드

Activate()

풀에서 개체를 만들거나 할당할 때 인프라에서 호출합니다. 이 메서드를 재정의하여 사용자 지정 초기화 코드를 개체에 추가합니다.

CanBePooled()

개체가 풀에 다시 배치되기 전에 인프라에서 이 메서드를 호출합니다. 이 메서드를 재정의하여 개체를 풀에 다시 배치할지 여부를 결정합니다.

Construct(String)

생성자를 호출하여 생성자 문자열이 전달된 후 바로 인프라에서 호출합니다. 이 메서드를 재정의하여 생성 문자열 값을 사용합니다.

CreateObjRef(Type)

원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
Deactivate()

개체가 비활성화되기 직전에 인프라에서 호출합니다. JIT(Just-In-Time) 컴파일된 코드나 개체 풀링이 사용될 때 이 메서드를 재정의하여 사용자 지정 종료 코드를 개체에 추가합니다.

Dispose()

ServicedComponent에서 사용하는 모든 리소스를 해제합니다.

Dispose(Boolean)

ServicedComponent에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.

DisposeObject(ServicedComponent)

개체를 종료하고 연결된 COM+ 참조를 제거합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다.

(다음에서 상속됨 MarshalByRefObject)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
InitializeLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.

(다음에서 상속됨 MarshalByRefObject)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
MemberwiseClone(Boolean)

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IRemoteDispatch.RemoteDispatchAutoDone(String)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용되지 않습니다.

COM+ 컨텍스트에서 원격 메서드 호출 후 ServicedComponent 클래스 개체의 done 비트가 true로 설정되도록 합니다.

IRemoteDispatch.RemoteDispatchNotAutoDone(String)

COM+ 컨텍스트에서 원격 메서드 호출 후 ServicedComponent 클래스 개체의 done 비트가 true로 설정되도록 보장하지 않습니다.

IServicedComponentInfo.GetComponentInfo(Int32, String[])

ServicedComponent 클래스 인스턴스에 대한 특정 정보를 가져옵니다.

적용 대상