Замок Виндзор конструктор по умолчанию вызывается вместо конструктора с зависимостью - PullRequest
1 голос
/ 20 июля 2010

С учетом следующего кода.

    [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 Ответ

2 голосов
/ 20 июля 2010

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

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

...