DryIoc, Как прописать transcient reuse (он же null), когда по умолчанию установлено иначе?

С помощью dryIoc я зарегистрировал свой контейнер как таковой:

        var container = new Container(rules => rules
            .WithoutThrowOnRegisteringDisposableTransient()
            .WithDefaultReuseInsteadOfTransient(Reuse.Singleton)
        );

Но затем я должен зарегистрировать переходный элемент, и поскольку Reuse.Transcient == null, он заменяется значением по умолчанию, которое я установил (таким образом, Reuse.Singleton). Как я могу преодолеть это?

        container.Register(Made.Of(() => new CandidateController(
            Arg.Of<IList<string>>("countryIsos")
        )),
            Reuse.Transient
        );

person Serge Intern    schedule 18.04.2016    source источник
comment
Эээ... Не установлено DefaultReuseInsteadOfTransient? Кроме того, вы можете создать собственное повторное использование.   -  person Fyodor Soikin    schedule 18.04.2016


Ответы (1)


Вы не можете напрямую преодолеть это в данный момент. Я признаю это проблемой и открою соответствующий вопрос.

Пока проблема не будет решена, вы можете использовать другое повторное использование вместо Transient в качестве обходного пути. В зависимости от вашей ситуации, наиболее близкой к попытке будет Reuse.InResolutionScope. Если вы разрешаете контроллер с помощью метода Resolve (или инфраструктура делает это за вас), он будет вести себя как Transient.

Обновление: вот проблема .

person dadhi    schedule 18.04.2016