예제 #1
0
        static void Main(string[] args)
        {
            var dobbyContainer = new DobbyContainer();

            dobbyContainer.Register <IMailSender, MailSender>(new SingletonLifetimeManager());
            dobbyContainer.Register <ISmsSender, SmsSender>();

            var smsSender  = dobbyContainer.Resolve <ISmsSender>();
            var mailSender = dobbyContainer.Resolve <IMailSender>();
            var mailSenderSecondResolve = dobbyContainer.Resolve <IMailSender>();

            smsSender.Send();

            mailSender.Send();
            mailSenderSecondResolve.Send();

            var childContainer = dobbyContainer.CreateAndGetChildContainer();

            var thirdMailSender = childContainer.Resolve <IMailSender>();

            thirdMailSender.Send();

            childContainer.Dispose();

            var fourthMailSender = dobbyContainer.Resolve <IMailSender>();

            fourthMailSender.Send();

            Console.Read();
        }
예제 #2
0
        public static void Build()
        {
            var dobbyContainer = new DobbyContainer();

            DobbyBootstrapper.Initialize(dobbyContainer);

            DependencyResolver.SetResolver(new DobbyDependencyResolver());

            dobbyContainer.AddModule(new DobbyTypeRegistrationModule());

            //RegisterTypes();
        }
예제 #3
0
 public void Execute(DobbyContainer dobbyContainer)
 {
     dobbyContainer.Register <IMessageService, MailService>(new PerRequestLifetimeManager());
 }
예제 #4
0
 public DobbyDependencyResolver()
 {
     _dobbyContainer = DobbyBootstrapper.GetContainer();
 }
예제 #5
0
 public static void Initialize(DobbyContainer container)
 {
     _container = container;
 }