У меня возникли проблемы с методом RegisterDecorator в Autofac.
В настоящее время у меня есть безымянная реализация IUserManager, зарегистрированная так:
builder.RegisterType<UserManager>().As<IUserManager>().InstancePerLifetimeScope();
Я пытаюсь добавить в эту реализацию безымянный декоратор:
builder.RegisterDecorator<IUserManager>(inner => new UserManager2(inner), null);
Однако я получаю следующую ошибку:
Служба IUserManager не может быть одновременно параметрами адаптера from и to — они должны различаться.
Почему они должны отличаться? Я думал, что весь смысл использования декораторов в том, что вы можете прозрачно добавлять декораторы от нуля ко многим. Конечно, реализация и декоратор должны иметь один и тот же интерфейс И ключи для достижения этого?
Activating
и заменыe.Instance
декоратором, как показано в code.google.com/p/autofac/source/browse/contrib/Source/. - person Nicholas Blumhardt   schedule 26.07.2011