1

一種のプロキシを作成しようとしていますが、COM のメソッドとプロパティが静的か動的か疑問に思っています。言い換えると、.NET は com オブジェクトを呼び出して、実行したいメソッドを伝え、com オブジェクトにそれを実行したふりをさせます (DynamicObject が .NET でできるように、何もせずに TryInvokeMember に対して true を返すだけです)。 )、または .NET は実際に COM メソッドを直接 (静的に) 呼び出しますか?

4

1 に答える 1

2

早期バインディング(静的) と遅延バインディング(動的)の違いを尋ねているようです。C# は両方をサポートします。

事前バインディングでは、 TlbImp.exeなどのツールを使用して Interop アセンブリを作成し、インターフェイス メソッドを直接呼び出す COM オブジェクトへのプロキシを生成する必要があります。

遅延バインディングを使用するには、リフレクション (メッシー) またはdynamicキーワードを使用して、実行時にメソッド呼び出しをバインドします。

ただし、COM オブジェクトは、要求されたメソッドを実行したようには見せかけません。メソッドが存在しない場合は、実行時例外が発生します。

于 2012-11-13T18:05:55.677 に答える