私は独自の COM アセンブリとのインターフェイスを作成している .dll ライブラリを持っています。私の目標は、作成した作品をオンラインで公開することですが、この独自の dll の配布を避けるために、COM アセンブリをプロジェクト参照として削除する必要があります。だから私ができるようにしようとしているのは、実行時にアセンブリを動的にロードし、必要な場所でメソッドを呼び出すことです。伝統的に、私は未知の型に対してオブジェクト リフレクションを使用してきましたが、これは時々遅くなる可能性があり、いくつかの醜いインスタンス化を伴います。.NET 4.0 では、すべてのメソッドをきれいに取得し、実行時に動的クラス/インターフェイスに投げ込む方法はありますか?
現在、次のようなオブジェクトを取得しています。
Type myClassType = Type.GetTypeFromProgID("MyClass.Myclass.1");
object classObj = Activator.CreateInstance(myClassType);
Type.GetMethods() を使用できると思っていましたが、一般的なもの (Equals、ToString、GetLifetime... など) しか返されません。クラスがインターフェイスを使用していることはわかっているので、インターフェイスを動的にロードすることも調べてみました。それが私を Reflection.Emit と Microsoft.Xrm.Sdk に導きましたが、これまでのところ理解できていません。
数行ごとに大量の BindingFlags をスローすることなくメソッドを呼び出す方法があれば、正しい方向に微調整していただければ幸いです。
クラスとインターフェイスの両方の GUID があれば、役に立ちます。