COM への .NET コンポーネントの公開Exposing .NET components to COM

.NET 型の記述とその型をアンマネージ コードから使用することは、開発者にとっては個別のアクティビティです。Writing a .NET type and consuming that type from unmanaged code are distinct activities for developers. このセクションでは、COM クライアントと相互運用するマネージド コードの記述のためのいくつかのヒントについて説明します。This section describes several tips for writing managed code that interoperates with COM clients:

  • 相互運用のための .NET 型の要件を満たすQualifying .NET types for interoperation.

    COM に対して公開するすべてのマネージド型、マネージド メソッド、マネージド プロパティ、マネージド フィールド、およびマネージド イベントは、パブリックとしてください。All managed types, methods, properties, fields, and events that you want to expose to COM must be public. 型には、パラメーターなしのパブリック コンストラクターが含まれている必要があります。これは COM を通じて呼び出すことができる唯一のコンストラクターです。Types must have a public parameterless constructor, which is the only constructor that can be invoked through COM.

  • 相互運用属性を適用するApplying interop attributes.

    マネージド コード内のカスタム属性は、コンポーネントの相互運用性を強化できます。Custom attributes within managed code can enhance the interoperability of a component.

  • COM 用にアセンブリをパッケージ化するPackaging an assembly for COM.

    COM 開発者から、アセンブリの参照と展開に必要な手順をまとめるように求められる場合があります。COM developers might require that you summarize the steps involved in referencing and deploying your assemblies.

さらに、このセクションでは、COM クライアントからマネージド型の使用に関連するタスクを明らかにします。Additionally, this section identifies the tasks related to consuming a managed type from a COM client.

COM からマネージド型を使用するにはTo consume a managed type from COM

  1. COM にアセンブリを登録するRegister assemblies with COM.

    アセンブリ (およびタイプ ライブラリ) 内の型は、デザイン時に登録する必要があります。Types in an assembly (and type libraries) must be registered at design time. インストーラーでアセンブリが登録されない場合は、Regasm.exe を使用するように COM 開発者に指示します。If an installer does not register the assembly, instruct COM developers to use Regasm.exe.

  2. COM から .NET 型を参照するReference .NET types from COM.

    COM 開発者は、現在使用しているのと同じツールと手法を使用して、アセンブリ内の型を参照できます。COM developers can reference types in an assembly using the same tools and techniques they use today.

  3. .NET オブジェクトを呼び出すCall a .NET object.

    COM 開発者は、アンマネージ型でメソッドを呼び出すのと同じ方法で、.NET オブジェクトでメソッドを呼び出すことができます。COM developers can call methods on the .NET object the same way they call methods on any unmanaged type. たとえば、COM CoCreateInstance API は、.NET オブジェクトをアクティブにします。For example, the COM CoCreateInstance API activates .NET objects.

  4. COM アクセスに対してアプリケーションを展開するDeploy an application for COM access.

    厳格な名前付きのアセンブリは、グローバル アセンブリ キャッシュにインストールすることができ、発行元からの署名が必要です。A strong-named assembly can be installed in the global assembly cache and requires a signature from its publisher. 厳密な名前のないアセンブリは、クライアントのアプリケーション ディレクトリにインストールする必要があります。Assemblies that are not strong named must be installed in the application directory of the client.

関連項目See also