Ninject Inject добавить элемент в коллекцию при создании коллекции - PullRequest
4 голосов
/ 21 октября 2010

Я использую MVVM light и настроил привязку следующим образом:

class TestModule:NinjectModule
{
    public override void Load()
    {
        Bind<ICollection<Element>>().To<Collection<Element>>();
        Bind<Element>().ToSelf();
    }
}

Когда я пытаюсь получить коллекцию ICollection, я получаю коллекцию с ОДНЫМ элементом. Я ожидаю пустую коллекцию.

    var _kernel = new StandardKernel(new TestModule());

    var col = _kernel.Get<ICollection<Element>>();
    Console.WriteLine("Count={0}", col.Count);   //Write "Count=1", Expect "Count=0"

1 Ответ

5 голосов
/ 21 октября 2010

Ответ дан в списке рассылки Ninject .

Такое поведение ожидается.Когда коллекция внедряется, она находит все привязки, которые соответствуют универсальному параметру, и добавляет их к вводимой коллекции.Если вы удалите привязку для элемента, будет добавлена ​​пустая коллекция.

Другой пример приведен , показывающий, что можно сделать на основе этого поведения.

...