public void Test1() { Castle.Windsor.IWindsorContainer windsorContainer = new Castle.Windsor.WindsorContainer(); windsorContainer.AddAspectCoreFacility(); windsorContainer.Register(Castle.MicroKernel.Registration.Component.For <IService>().ImplementedBy <Service>()); windsorContainer.BeginScope(); var s = windsorContainer.Resolve <IService>(); s.Foo(); }
public void Test1() { Castle.Windsor.IWindsorContainer windsorContainer = new Castle.Windsor.WindsorContainer(); windsorContainer.AddAspectCoreFacility(config => { config.Interceptors.AddDelegate((ctx, next) => { var scopedService = ctx.ServiceProvider.GetService(typeof(ScopedService)); return(ctx.Invoke(next)); }); }); windsorContainer.AddAspectCoreFacility(); windsorContainer.Register(Component.For <IService>().ImplementedBy <Service>()); windsorContainer.Register(Component.For <ScopedService>().LifestyleScoped()); windsorContainer.BeginScope(); var s = windsorContainer.Resolve <IService>(); s.Foo(); windsorContainer.BeginScope(); s = windsorContainer.Resolve <IService>(); s.Foo(); }
public static void Run() { var container = new Castle.Windsor.WindsorContainer(); container.Register(Component .For <LimitedScopeServce>() .ImplementedBy <LimitedScopeServce>() .LifestyleTransient() ); // chcemy aby LimitedScopeServce var scope = container.BeginScope(); container.Resolve <LimitedScopeServce>(); // ale tu już scope.Dispose(); Console.WriteLine("Po scope"); Console.ReadLine(); }