Сканирование и переопределение автозаполнения регистрации, которые используют WithParameter - PullRequest
1 голос
/ 30 ноября 2011

Как часть моей инициализации автофака, я сканирую список сборок и регистрирую любые службы, которые соответствуют соглашению об именах: MyClass: IMyClass.Это сокращает количество регистрационного кода, которое у меня есть, поэтому я действительно не хочу исключать эту функцию.Проблема в том, что у меня есть пара классов, которые я хочу зарегистрировать, используя некоторые конкретные данные инициализации.В настоящее время я регистрирую их после процесса сканирования, используя что-то вроде:

builder.RegisterType<MyClass>().As<IMyClass>().WithParameter("initData", value)

Когда я проверяю контейнер, я вижу обе регистрации, одну из процесса сканирования и одну с указанным параметром.Это правильное поведение?Я хотел, чтобы autofac заменил отсканированную регистрацию для IMyClass.Как я могу заставить автофак использовать регистрацию, используя предоставленный параметр?

Спасибо,

1 Ответ

1 голос
/ 01 декабря 2011

Контейнер будет хранить обе регистрации, но будет использоваться только последняя регистрация. Вы сделали тест, чтобы проверить поведение, которое вы ожидаете? Что-то вроде этого:

var my = container.Resolve<IMyClass>();
Assert.That(my.Data, Is.EqualTo("initData"));
...