mam autofac skonfigurować zrobić zastrzyk zależności od moich kontrolerami asp.net MVC, tak:Zastosowanie nazwie rejestracja w autofac z MVC integracji wtrysku sterownik
System.Web.Mvc.DependencyResolver
.SetResolver(new AutofacDependencyResolver(container));
i działa dobrze. Mam jednak kilka implementacje interfejsu (powiedzmy, IFoo
), które chcę, aby zarejestrować się jako nazwanych wystąpień:
builder.Register<Bar>(c => new Bar()).Named<IFoo>("bar");
builder.Register<Baz>(c => new Baz()).Named<IFoo>("baz");
...
I mam kilka kontrolerów, które biorą IFoo
w ich konstruktora. Ale każdy kontroler potrzebuje innej konkretnej implementacji IFoo
. Jak mogę powiedzieć autofacowi, który kontroler potrzebuje "paska" i który potrzebuje "baz"?
Dzięki, to działa. Od czasu do czasu kontroler będzie potrzebował więcej niż jednego 'IFoo' - czy mogę określić, która nazwa parametru przechodzi do nazwanej implementacji? –
Zaktualizowałem swoją odpowiedź. – nemesv