テナントごとにビューをオーバーライドできるマルチテナントMVCWebサイトを作成しようとしています。
コンパイルされたアセンブリからビューをロードできるようにするためにRazorGeneratorを使用しています(複数のアセンブリを許可するためにいくつかの変更が加えられています)。
したがって、ビューを含むビン内のDLLを識別する方法が必要です。現在、ダミークラス(Class1
)を作成し、ループしてAppDomain.CurrentDomain.GetAssemblies().ToList()
、どのアセンブリにそのダミークラスが含まれているかを確認しています。
私はいくつかの可能性を想像することができます。
- インターフェイスを作成し、各ビュープラグインアセンブリで
IViewPlugin
自分に割り当てますClass1
- 各アセンブリ
MyCompany.Presentation.Views.Plugins.[ClientName]
に名前を付け、一致するすべてのプラグインを含めます。
アセンブリ自体に実際のクラスがない場合に、アセンブリを「プラグイン」アセンブリとしてマークする他のより良い方法はありますか(プラグインアセンブリを識別するために特別に作成した場合を除く)