Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- moduleBuilder.RegisterType<Service>().As<Interface>().InstancePerLifetimeScope();
- // In Module1
- moduleBuilder.RegisterType<Service>().As<Interface>().InstancePerLifetimeScope();
- // In Module2
- // AnotherService overrides Service
- moduleBuilder.RegisterType<AnotherService>().As<Interface>().InstancePerLifetimeScope();
- // In Module1
- moduleBuilder.RegisterType<Service>()
- .As<Interface>()
- .InstancePerLifetimeScope()
- .PreserveExistingDefaults();
- // In Module2
- // AnotherService overrides Service
- moduleBuilder.RegisterType<AnotherService>().As<Interface>().InstancePerLifetimeScope();
- builder.RegisterType<MorningService>()
- .As<IGreetingService>()
- .Named<IGreetingService>("morning")
- .InstancePerHttpRequest();
- builder.RegisterType<EveningService>()
- .As<IGreetingService>()
- .Named<IGreetingService>("evening")
- .InstancePerHttpRequest();
- builder.RegisterType<MorningController>()
- .WithParameter(ResolvedParameter.ForNamed<IGreetingService>("morning"))
- .InstancePerHttpRequest();
- builder.RegisterType<EveningController>()
- .WithParameter(ResolvedParameter.ForNamed<IGreetingService>("evening"))
- .InstancePerHttpRequest();
- // ***** You can even pass it to other service *****
- builder.RegisterType<SomeService>().As<ISomeService>()
- .WithParameter(ResolvedParameter.ForNamed<IGreetingService>("evening"))
- .InstancePerHttpRequest();
- public interface IGreetingService
- {
- string GetMessage();
- }
- public class MorningService : IGreetingService
- {
- public string GetMessage()
- {
- return "Have a good morning!";
- }
- }
- public class EveningService : IGreetingService
- {
- public string GetMessage()
- {
- return "Have a good evening!";
- }
- }
- public class EveningController : Controller
- {
- private readonly IGreetingService _service;
- public EveningController(IGreetingService service)
- {
- _service = service;
- }
- //
- // GET: /Evening/
- public ActionResult Index()
- {
- ViewBag.Message = _service.GetMessage();
- return View();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement