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(); }
public object GetService(Type serviceType) { if (!_dobbyContainer.IsRegistered(serviceType)) { if (serviceType.IsAbstract || serviceType.IsInterface) { return(null); } return(_dobbyContainer.ResolveNotRegisteredType(serviceType)); } return(_dobbyContainer.Resolve(serviceType)); }