方法 :サービス コンポーネントを作成する
次の手順では、新しいサービス コンポーネントを作成する方法について説明します。
サービス コンポーネントを作成するには
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); } }
属性を適用し、各アセンブリ、クラス、またはメソッドが COM+ 機能と対話する方法を指示します。
メモ : .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. }
強力なキーを生成して、次の例をコンパイルします。
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
サービス コンポーネント アプリケーションのアセンブリを動的または手動で登録することにより、サービス コンポーネント アプリケーションを配置します。
サービス コンポーネントが登録されると、クライアントは、他のコンポーネントのインスタンスを作成するときと同じ方法で、そのコンポーネントのインスタンスを作成できます。完全な例については、「サービス コンポーネントの例」を参照してください。
メモ : 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);
}
}
関連項目
参照
概念
COM+ サービスを構成する属性の適用
サービス コンポーネントの登録
サービス コンポーネントの例
利用可能な COM+ サービスの概要
その他の技術情報
Copyright © 2007 by Microsoft Corporation.All rights reserved.