C#
public class LibraryModule : NinjectModule
{
public override void Load()
{
Bind<IBook>().To<LibraryBook>();
Bind<ILibraryBookService>().To<LibraryBookService>();
Bind<IVisitorRepository>().To<VisitorRepository>();
Bind<MainViewModel>().ToSelf();
Bind<MainWindow>().ToSelf();
}
}
// использование
var kernel = new StandardKernel(new LibraryModule());
var model = kernel.Get<MainViewModel>();
var view = kernel.Get<MainWindow>();
view.DataContext = model;
view.Show();
Ninject - это мощный и одновременно легкий в использовании IoC контейнер. По простоте использования, а также понятности api этот контейнер чем-то напоминает Autofac. Данный контейнер имеет очень мощную поддержку в онлайн-обществе. Пожалуй, единственным нюансом, который может смущать в данном IoC контейнере, - это скорость его работы. Почему-то этот контейнер для управления зависимостями уступает по скорости всем описанным мной ранее IoC контейнерам. Но если у Вас небольшое приложение, и Вам не нужно создавать много объектов через данный контейнер, то в плане простоты этот контейнер управления зависимостями - именно то, что нужно.