Переопределение обязательных свойств autofac

Прочитал в https://autofac.readthedocs.io/en/stable/register/prop-method-injection.html#overriding-required-properties о переопределении обязательных свойств. Вот код

    namespace ConsoleApp1
    {
      public interface IConfigReader { }
      public interface ILogger { }
    
      public class MyComponent
      {
        public required ILogger Logger { protected get; init; }
        public required IConfigReader ConfigReader { protected get; init; }
        public void WriteDate() => ConsoleLogger.Print();
      }
    
      public class ConsoleLogger
      {
        public ConsoleLogger() { }
        public static void Print() => Console.WriteLine("print consoleLogger");
      }
    
      class Program
      {
        private static void Main(string[] args)
        {
          var builder = new ContainerBuilder();
          builder.RegisterType<MyComponent>().WithProperty("Logger", new ConsoleLogger());
          var container = builder.Build();
          var a = container.Resolve<MyComponent>(); //ошибка
          a.WriteDate(); 
          Console.Read();
        }
      }
    }

Я так понимаю что в результате переопределения должно меняться значение свойства. Но тут до переопределения не доходит потому что ошибка. Поясните пожалста как исправить ошибку и что тут переопределяется


Ответы (0 шт):