2009-03-15 5 views
3

IDispatchExインターフェイスを含むライブラリが見つかりません。私はこのインタフェースを実装したいが、それを見つけることはできない。 誰がどこにいるのか知っていますか?IDispatchExはどこにありますか?

ありがとう、 Paul。

答えて

4

IDispatchExインターフェイスを実装するマネージクラスを作成する場合は、まず.NETに存在しないため、このインターフェイスを定義する必要があります。その定義にはlinkがあります。このインタフェースを実装するIMHOは簡単な作業ではありません。

+0

私は最近、IDispatchExのinteropの定義とC#のラッパーを探していましたが、何も見つかりませんでした。この回答のリンクはなくなっているようです。だから誰かが必要な場合があるので、最初からそれを作成しなければなりませんでした。[ここにあります](http://stackoverflow.com/a/18546866/1768303) – Noseratio

0

正確に何をしますか?これはC#で使用するためのものですか?または外部(COM)からですか?

ブラウザのサポートが必要な場合は、おそらくWebBrowserでホストし、ObjectForScriptingを設定します。

あなたはのソート拡張メソッドを持つC#3.0で型にメソッドを追加することができます

public static void Bar(this Foo foo, int someArg) {...} 
.... 
Foo foo = ... 
foo.Bar(123); 

しかし、これはまだ、静的型付けです。 C#4.0では、CLR/DLR内の真の動的オブジェクトに対してdynamicが導入されましたが、IDynamicObjectを実装します。それは自明ではありません。

+0

ありがとうございます!しかし、私はjavascriptから呼び出されるときに私のC#クラスでは、未知のプロパティ(またはメソッド)をエミュレートしたい。たとえば、 var o = new ActiveXObject( 'object'); o.Foo( "hi"); C#クラスにFooメソッドが存在しないことに注意してください。だから私は目標を達成するためにIExpando.AddMethodを実装したいと思っています。 –

+0

しかし、IExpando.AddMethodにはいくつかの問題があります。それは、呼び出されたメソッドが呼び出されたときに呼び出されません。しかし、それは、(IExpando.AddFieldが発砲されたという意味で)非現場のフィールドが呼び出されたときにうまく動作します。だから私は違いを理解することはできませんし、IDispatchExインターフェイスを試してみたい。 –

関連する問題