実行時にアセンブリをロードしていますが、アセンブリタイプによってはジェネリックも使用しています。適切なタイプを取得するために、各DLLは、そこに存在すると予想されるファクトリを実装しています。このファクトリは、正しいジェネリック型のクラスをインスタンス化します。MethodInfo.InvokeにはWindows 7の管理者が必要ですか?
Type factoryType = assembly.GetType("MyCompany.ScenarioPlayer.PlayerFactory");
MethodInfo method = factoryType.GetMethod("CreatePlayer", BindingFlags.Public | BindingFlags.Static);
player = (IScenarioPlayer)method.Invoke(null, null);
このコードはメソッドで失敗します。私は管理者特権を持っていません。これは、私がそれを使用している方法は、管理者が必要な方法MethodInfo.Invokeへの呼び出しは正しいですか?私はDLLのコードをステップダウンして、この呼び出しを工場に渡すことさえできません。
編集:説明されていないターゲットDLLの依存関係が判明しました。私はMEFフレームワークのアイデアが好きです。
例外メッセージとスタックトレースを送信します。 –