そのため、実行時にアセンブリを読み込んでおり、アセンブリの種類に応じてジェネリックも使用しています。適切な型を取得するために、各 DLL は、正しいジェネリック型でクラスをインスタンス化するファクトリを実装しています。
Type factoryType = assembly.GetType("MyCompany.ScenarioPlayer.PlayerFactory");
MethodInfo method = factoryType.GetMethod("CreatePlayer", BindingFlags.Public | BindingFlags.Static);
player = (IScenarioPlayer)method.Invoke(null, null);
管理者権限がない場合、このコードは method.Invoke で失敗します。私が使用している方法で MethodInfo.Invoke を呼び出すには管理者が必要であるというのは正しいですか? DLL のコードにステップ ダウンしましたが、Factory へのこの呼び出しを通過することさえできません。
edit : 説明されていないターゲット DLL の依存関係があったことが判明しました。ただし、提案された MEF フレームワークのアイデアは気に入っています。