ServicedComponent クラス
アセンブリ: System.EnterpriseServices (system.enterpriseservices.dll 内)

<SerializableAttribute> _ Public MustInherit Class ServicedComponent Inherits ContextBoundObject Implements IRemoteDispatch, IDisposable, IServicedComponentInfo
[SerializableAttribute] public abstract class ServicedComponent : ContextBoundObject, IRemoteDispatch, IDisposable, IServicedComponentInfo
[SerializableAttribute] public ref class ServicedComponent abstract : public ContextBoundObject, IRemoteDispatch, IDisposable, IServicedComponentInfo
/** @attribute SerializableAttribute() */ public abstract class ServicedComponent extends ContextBoundObject implements IRemoteDispatch, IDisposable, IServicedComponentInfo
SerializableAttribute 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); } }
[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); } };
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 コンポーネントとして配置するには、厳密なキーを生成し、クラスをライブラリとしてコンパイルし、このライブラリを登録する必要があります。これらの 3 つの手順は、次の 3 つのコマンドによって実行されます。

System.MarshalByRefObject
System.ContextBoundObject
System.EnterpriseServices.ServicedComponent
System.EnterpriseServices.CompensatingResourceManager.Compensator
System.EnterpriseServices.RegistrationHelperTx


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からServicedComponent クラスを検索する場合は、下記のリンクをクリックしてください。

- ServicedComponent クラスのページへのリンク