Замок Windsor конструктор по умолчанию называют вместо конструктора с зависимостью

Учитывая следующий Код.

    [TestMethod] public void CanResolveILoggerTest()
    {
        var Container = new Castle.Windsor.WindsorContainer();
        Container.Register(
            Component.For<Castle.Core.Logging.ILogger>()
                .ImplementedBy<Castle.Core.Logging.TraceLogger>(),
            Component.For<NeedsLogger>()
            );
        var blah = Container.Resolve<NeedsLogger>();
    }
    public class NeedsLogger
    {
        public NeedsLogger()
        {
            throw new Exception("container shouldn't resolve me");
        }
        Castle.Core.Logging.ILogger logger;

        public NeedsLogger(Castle.Core.Logging.ILogger logger)
        {
            this.logger = logger;
        }
    }

то, почему конструктор NeedsLogger по умолчанию, называют вместо того с зависимостью.

1
задан jrwren 20 July 2010 в 14:24
поделиться

1 ответ

Скорее всего, потому, что регистратор не готов (он ожидает предоставления своей собственной зависимости).

Я настоятельно рекомендую вместо этого использовать средство ведения журнала, которое позаботится о регистрации и предоставит вам средства ведения журнала /

2
ответ дан 2 September 2019 в 22:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: