Переопределение обязательных свойств 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();
}
}
}
Я так понимаю что в результате переопределения должно меняться значение свойства. Но тут до переопределения не доходит потому что ошибка. Поясните пожалста как исправить ошибку и что тут переопределяется