Другой пример можно найти в примере проекта WPF: MVVM & Unity Киоск. Вот класс Bootsrapper:
public class Bootstrapper
{
public Bootstrapper(IUnityContainer container)
{
this.container = container;
}
public Bootstrapper RegisterModule(Type moduleType)
{
IModule module = container.Resolve(moduleType) as IModule;
if (module == null)
throw new ArgumentException("moduleType");
module.Register(container);
return this;
}
private IUnityContainer container;
}
И интерфейс IModule:
public interface IModule
{
void Register(IUnityContainer container);
}
Наконец, один из реализованных модулей:
public class PhotoEditorModule : IModule
{
public void Register(IUnityContainer container)
{
// register default controller
container.RegisterType<IPhotoEditor, Controller>();
// register view models
container.RegisterType<IPhotoEditorViewModel, PhotoEditorViewModel>();
container.RegisterType<IPhotoEditorMenuViewModel, PhotoEditorMenuViewModel>();
}
}