クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
.NET 開発
.NET Framework 3.5
.NET Framework 3.5
ServicedComponent クラス

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2008/.NET Framework 3.5

その他のバージョンについては、以下の情報を参照してください。
.NET Framework クラス ライブラリ
ServicedComponent クラス

更新 : 2007 年 11 月

COM+ サービスを使用するすべてのクラスの基本クラスを表します。

名前空間 :  System.EnterpriseServices
アセンブリ :  System.EnterpriseServices (System.EnterpriseServices.dll 内)

Visual Basic (宣言)
<SerializableAttribute> _
Public MustInherit Class ServicedComponent _
    Inherits ContextBoundObject _
    Implements IRemoteDispatch, IDisposable, IServicedComponentInfo
Visual Basic (使用法)
Dim instance As ServicedComponent
C#
[SerializableAttribute]
public abstract class ServicedComponent : ContextBoundObject, 
    IRemoteDispatch, IDisposable, IServicedComponentInfo
Visual C++
[SerializableAttribute]
public ref class ServicedComponent abstract : public ContextBoundObject, 
    IRemoteDispatch, IDisposable, IServicedComponentInfo
J#
/** @attribute SerializableAttribute */ 
public abstract class ServicedComponent extends ContextBoundObject implements IRemoteDispatch, 
    IDisposable, IServicedComponentInfo
JScript
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 コンポーネントとして公開する方法を次のコード例に示します。

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

Visual C++
[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);
   }

};


J#
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 つのコマンドによって実行されます。

 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
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker