以下のようなものを使用して、コードで実行時に外部リソースの 1 つをリンクしています。
System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFrom("MyNice.dll");
Type type = assembly.GetType("MyType");
Tool = Activator.CreateInstance(type) as Tool;
ご覧のとおり、オブジェクト作成の最後に、結果のオブジェクトをツール クラスにキャストする必要があります。これは、コード内に Tool クラスのメソッドとプロパティへの参照が多数あるためです。コードはコンパイル時にエラーになります。
参照から Dll を削除し、実行時に動的にロードしたかったのですが、同時に、Tool アセンブリを参照して依存しているコードの一部があるため、これは悪い状況です。どうしたら独立できるでしょうか?コード全体でリフレクションを使用する必要がありますか、それとも簡単な代替手段がありますか?
例えば:
if (Tool.ApplicationIsOpen)
return StatusResult.Success;
Tool クラスが既に存在すると想定している同じクラスにあり、参照フォルダーから削除すると壊れます。
何か提案はありますか?