/Sample/CQRSWeb/IoC.cs

http://github.com/gautema/CQRSlite · C# · 35 lines · 33 code · 2 blank · 0 comment · 0 complexity · 06f37ae1d7b5d34911f3d6fa5d630a9a MD5 · raw file

  1. using CQRSCode.Domain;
  2. using CQRSCode.ReadModel;
  3. using CQRSlite.Bus;
  4. using CQRSlite.Commanding;
  5. using CQRSlite.Domain;
  6. using CQRSlite.Eventing;
  7. using CQRSlite.Infrastructure;
  8. using StructureMap;
  9. using StructureMap.Graph;
  10. namespace CQRSWeb {
  11. public static class IoC {
  12. public static IContainer Initialize() {
  13. ObjectFactory.Initialize(x =>
  14. {
  15. x.For<InProcessBus>().Singleton().Use<InProcessBus>();
  16. x.For<ICommandSender>().Use(y => y.GetInstance<InProcessBus>());
  17. x.For<IEventPublisher>().Use(y => y.GetInstance<InProcessBus>());
  18. x.For<IHandleRegister>().Use(y => y.GetInstance<InProcessBus>());
  19. x.For<ISession>().HybridHttpOrThreadLocalScoped().Use<Session>();
  20. x.For<ISnapshotStrategy>().Use<NullSnapshotStrategy>();
  21. x.For<IEventStore>().Singleton().Use<EventStore>();
  22. x.Scan(s =>
  23. {
  24. s.TheCallingAssembly();
  25. s.AssemblyContainingType<InProcessBus>();
  26. s.AssemblyContainingType<ReadModelFacade>();
  27. s.Convention<FirstInterfaceConvention>();
  28. });
  29. });
  30. return ObjectFactory.Container;
  31. }
  32. }
  33. }