一種のプロキシを作成しようとしていますが、COM のメソッドとプロパティが静的か動的か疑問に思っています。言い換えると、.NET は com オブジェクトを呼び出して、実行したいメソッドを伝え、com オブジェクトにそれを実行したふりをさせます (DynamicObject が .NET でできるように、何もせずに TryInvokeMember に対して true を返すだけです)。 )、または .NET は実際に COM メソッドを直接 (静的に) 呼び出しますか?
1 に答える
2
早期バインディング(静的) と遅延バインディング(動的)の違いを尋ねているようです。C# は両方をサポートします。
事前バインディングでは、 TlbImp.exeなどのツールを使用して Interop アセンブリを作成し、インターフェイス メソッドを直接呼び出す COM オブジェクトへのプロキシを生成する必要があります。
遅延バインディングを使用するには、リフレクション (メッシー) またはdynamic
キーワードを使用して、実行時にメソッド呼び出しをバインドします。
ただし、COM オブジェクトは、要求されたメソッドを実行したようには見せかけません。メソッドが存在しない場合は、実行時例外が発生します。
于 2012-11-13T18:05:55.677 に答える