0

アプリケーションの外部に完全にあるクラスをインスタンス化したいアプリケーションがあります。これは、おそらく後日サード パーティによって作成されたものです。したがって、クラスは認識できませんが、クラス内のインターフェイスは認識されます。だから私はレイトバインディングを使いたい。

私のコード(VB.NET)には、次のものがあります。

Dim a As Object
a = Activator.CreateInstance("MyNameSpace.CustomClass", "")
MsgBox(a.Name)

Could not load file or assembly 'MyNameSpace.CustomClass' or one of its dependencies. The system cannot find the file specified.アセンブリが実行可能ファイルと同じフォルダーにあるにもかかわらず、2 行目で例外が発生し ます。Type.GetType() を使用できません。型が呼び出し元のアセンブリに認識されていないためです。

4

1 に答える 1

0

CreateInstanceFromメソッドが必要です。

    var typeReference = Activator.CreateInstanceFrom(assemblyPath, 
                                                       fullyQualifiedClassName);

しかし、私にとっては、インターフェイスでインポート/エクスポートをバインドできるため、MEF の方が優れたソリューションです。

于 2012-12-20T14:26:37.267 に答える