Prism provides you with a mechanism to load modules on demand, without reference them on your project.
As documentation shows: “…In WPF, it is possible to specify your modules information in the App.config file. The advantage of this approach is that this file is not compiled into the application. This makes it very easy to add or remove
modules at run time without recompiling the application.”
When your modules are registered in the ModuleCatalog, you can resolve an instance of the
ModuleManager and finally you can load the modules on demand like this:
private void OnLoadModuleClick(object sender, EventArgs e)
Additionally, you can read more about modularity in
Chapter 4: Modular Application Development and also you can check the
Modularity QuickStart for WPF (using MEF).
I hope you find this information useful.