Advertisement
Guest User

Untitled

a guest
Apr 25th, 2014
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. moduleBuilder.RegisterType<Service>().As<Interface>().InstancePerLifetimeScope();
  2.  
  3. // In Module1
  4. moduleBuilder.RegisterType<Service>().As<Interface>().InstancePerLifetimeScope();
  5.  
  6. // In Module2
  7. // AnotherService overrides Service
  8. moduleBuilder.RegisterType<AnotherService>().As<Interface>().InstancePerLifetimeScope();
  9.  
  10. // In Module1
  11. moduleBuilder.RegisterType<Service>()
  12. .As<Interface>()
  13. .InstancePerLifetimeScope()
  14. .PreserveExistingDefaults();
  15.  
  16. // In Module2
  17. // AnotherService overrides Service
  18. moduleBuilder.RegisterType<AnotherService>().As<Interface>().InstancePerLifetimeScope();
  19.  
  20. builder.RegisterType<MorningService>()
  21. .As<IGreetingService>()
  22. .Named<IGreetingService>("morning")
  23. .InstancePerHttpRequest();
  24.  
  25. builder.RegisterType<EveningService>()
  26. .As<IGreetingService>()
  27. .Named<IGreetingService>("evening")
  28. .InstancePerHttpRequest();
  29.  
  30. builder.RegisterType<MorningController>()
  31. .WithParameter(ResolvedParameter.ForNamed<IGreetingService>("morning"))
  32. .InstancePerHttpRequest();
  33.  
  34. builder.RegisterType<EveningController>()
  35. .WithParameter(ResolvedParameter.ForNamed<IGreetingService>("evening"))
  36. .InstancePerHttpRequest();
  37.  
  38. // ***** You can even pass it to other service *****
  39. builder.RegisterType<SomeService>().As<ISomeService>()
  40. .WithParameter(ResolvedParameter.ForNamed<IGreetingService>("evening"))
  41. .InstancePerHttpRequest();
  42.  
  43. public interface IGreetingService
  44. {
  45. string GetMessage();
  46. }
  47.  
  48. public class MorningService : IGreetingService
  49. {
  50. public string GetMessage()
  51. {
  52. return "Have a good morning!";
  53. }
  54. }
  55.  
  56. public class EveningService : IGreetingService
  57. {
  58. public string GetMessage()
  59. {
  60. return "Have a good evening!";
  61. }
  62. }
  63.  
  64. public class EveningController : Controller
  65. {
  66. private readonly IGreetingService _service;
  67.  
  68. public EveningController(IGreetingService service)
  69. {
  70. _service = service;
  71. }
  72.  
  73. //
  74. // GET: /Evening/
  75. public ActionResult Index()
  76. {
  77. ViewBag.Message = _service.GetMessage();
  78. return View();
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement