RegisterDecorator Autofac дублирует тип C#
Изучаю Autofac. Сделал два класса IngoingFileSettings и OutgoingFileSettings. Оба класса реализуют ISettings, имеют метод из интерфейса ISettings.Load().
Когда пытаюсь получить Resolve<IEnumerable<ISettings>> то получаю 2 элемента (как и должно быть), однако они оба имеют тип данных OutgoingFileSettings. Когда я меняю строки builder.RegisterDecorator местами, то тип становится IngoingFileSettings.
Делаю всё как в оф. документации (https://autofac.readthedocs.io/en/latest/advanced/adapters-decorators.html#simplified-syntax). Комментарии в коде дают понять, что:
decorators and they'll be applied in the order that you register them.
Однако, у меня регистрируется именно один тип. Почему так и как это исправить? В чем я оказался не прав?
using Autofac;
static void Main(string[] args)
{
var builder = new ContainerBuilder();
builder.RegisterType<IngoingFileSettings>().As<ISettings>();
builder.RegisterType<OutgoingFileSettings>().As<ISettings>();
builder.RegisterDecorator<IngoingFileSettings, ISettings>();
builder.RegisterDecorator<OutgoingFileSettings, ISettings>();
//[0] - тип outgoingfilesettings, [1] - тоже.
var settings = container.Resolve<IEnumerable<ISettings>>();
foreach (var sett in settings)
{
sett.Load();
}
Console.ReadKey();
}