Что приводит к тому, что свойство Tint объекта Ninject.Activation.IRequest имеет значение null
Вероятно, простой вопрос, но я не нашел ничего в документации или на SO, что прямо отвечает на него.
Я должен был работать с Ninject When(Func<IRequest, bool> condition)
метод расширения в первый раз, и немного повесил трубку с исключениями нулевого объекта. Я понял, что IRequest.Target
свойство иногда равно нулю, и я видел несколько других примеров, использующих When
эта проверка на ноль Target
также.
Мне любопытно, при каких условиях Ninject выполняет обратный вызов, не имея значения для Target
, При создании привязки формы
Bind<T1>()
.To<T2>
.When(r => SomeTest(r.Target));
Я изначально и ошибочно предполагал, что всегда будет действительный Target
типа T1
когда привязка исполнялась.
1 ответ
Решение
Для корневого объекта он пуст, потому что в этом случае нет цели. (kernel.Get<MyCompositionRoot>()
)