方法 :サービス コンポーネントを作成する

次の手順では、新しいサービス コンポーネントを作成する方法について説明します。

サービス コンポーネントを作成するには

  1. 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);
        }
    }
    
  2. 属性を適用し、各アセンブリ、クラス、またはメソッドが COM+ 機能と対話する方法を指示します。

    Noteメモ :

    .NET Framework Version 1.1 では、ApplicationAccessControlAttribute 属性がアセンブリ内に存在しない場合は、既定で COM+ のセキュリティ構成が有効になります。これは、.NET Framework Version 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.
    }
    
  3. 強力なキーを生成して、次の例をコンパイルします。

    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
    
  4. サービス コンポーネント アプリケーションのアセンブリを動的または手動で登録することにより、サービス コンポーネント アプリケーションを配置します。

  5. サービス コンポーネントが登録されると、クライアントは、他のコンポーネントのインスタンスを作成するときと同じ方法で、そのコンポーネントのインスタンスを作成できます。完全な例については、「サービス コンポーネントの例」を参照してください。

    Noteメモ :

    Windows 2000 プラットフォーム上の COM+ は、常に、作成しているコンポーネントの最新バージョンの共通言語ランタイムを読み込みます。つまり、.NET Framework Version 1.0 と .NET Framework Version 1.1 の両方がインストールされているコンピュータでは、常に .NET Framework Version 1.1 が読み込まれます。回避策として、COM+ の dllhost.exe の構成ファイルを作成します。これにより、すべてのアプリケーションを特定バージョンの .NET Framework に "ロック" できます。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);
    }
}

関連項目

参照

ServicedComponent

概念

COM+ サービスを構成する属性の適用
サービス コンポーネントの登録
サービス コンポーネントの例
利用可能な COM+ サービスの概要

その他の技術情報

サービス コンポーネントの作成

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.