2009-07-01 25 views

答えて

2

はい、可能です。 thoroughly explained in this CodeProject articleとして

、それを行うには2つの方法があります。

  1. バイナリファイル(.NETアセンブリ)を作成するためのツール(タイプライブラリインポーター、またはtlbimp.exe)を使用することを含む結合初期には、どのCLRがCOMオブジェクトのRuntime Callable Wrapperをインスタンス化するために必要なメタデータが含まれています。生成されたアセンブリを参照し、これらのクラスをコード内の他の.NETクラスと同様に使用できるため、強力な型付けの利点が得られます。

  2. 実行時に、Type.InvokeMemberメソッドを使用してCOMオブジェクトのメソッドを名前で呼び出すレイトバインディング。このアプローチは弱く型付けされているため、初期バインディングよりエラーが発生しやすくなりますが、柔軟性も向上します。

+0

@BilltheLizard:ああ、やっかいなことに、COMからCOMを消費することについての質問だった。今すぐ実行する必要があります、私は後でそれを修正します。 – Groo

4
+0

これは理論的に質問に答えるかもしれませんが、答えの本質的な部分をここに含め、参考にするためのリンクを提供することが望ましいでしょう(http://meta.stackexchange.com/q/8259)。 –

1

を読む(他の回答で述べたように)はい、あなたはそれを行うことができます。

それは基本的にAssembly Information Dialog Boxではなく、良い習慣[アセンブリはCOM-見えるよう]が(これはあなたのアセンブリに署名し、ちょうどスイッチを切り替えることによって行うことができるCOMコンポーネントとして、あなたの.NETコンポーネントをさらすに沸きますインターフェイスの実装を要求し、ComVisibleAttributeを使用してインターフェイスのみを公開します)。

このようにして、COMコンポーネントはあたかもCOMコンポーネントであるかのように.NETコンポーネントと通信できます。

関連する問題