Я использую Ninject с приложением Windows Phone.Инъекция зависимости, которая требует параметров для инициализации
Моя логика включает в себя интерфейс IBarViewModel, который:
public interface IBarViewModel
{
double Width { get; set; }
bool IsAchieved { get; set; }
CornerRadius Corner { get; set; }
}
В настоящее время существует только один implementatation из IBarViewModel - GenericBarViewModel.
Все реализаторы IViewModel должны будут иметь эти три основных свойства, установленные во время создания.
Я хочу создать экземпляры этих IBarViewModels во время выполнения из моего кода. Как мне это сделать.
Когда я программировал против реализации (класс был назван просто Bar
), я просто звоню инициализатор объекта, как это:
_bars.Add(new Bar
{
Width = _totalWidth,
IsAchieved = false,
Corner = new CornerRadius(5, 5, 5, 5)
});
В соответствии с ответом на этот вопрос: Inject value into injected dependency я могу передать параметр для модуля ninject.
Осталось только вопрос: Должен ли я перенести свое ядро ninject в логику, чтобы сделать такое параметризованное разрешение зависимостей?
См. [Здесь] (http://stackoverflow.com/questions/2227548/creating-an-instance-using-ninject-with-additional-parameters-in-the-constructor). Просто попросите свой класс принять эти параметры в конструкторе и проинструктировать ninject, какие значения должны быть предоставлены. –