私は自分の仕事のために拡張可能なサービス アプリケーションを構築しています。それを「拡張」する方法は、DLL をロードし、その中でメソッドを実行することです。このように設計されているため、新しいジョブを実行するたびに再コンパイルして再デプロイする必要はありません。現在、サービスは を使用して DLL をロードしAssembly.LoadFrom()
、アセンブリをサービスに登録します。登録でFunc<object, bool>
は、新しいジョブのエントリ ポイントを指定する が渡されます。
私の質問は、次のような方法でタスクを実行する必要があるたびにインスタンスを作成した方がよいでしょうか?
IRunable run = (IRunable)asm.CreateInstance(t.FullName, true);
run.Run();
Func<>
または、タイマーに基づいて呼び出されるクラスに保存する現在の方法で行う方がよいでしょうか?