public void Test() { MyTickable.HasTicked = false; MyInit.HasInitialized = false; MyDispose.HasDisposed = false; var container = new DiContainer(); container.BindFacadeFactory <FooFacade, FooFacade.Factory>(FacadeInstaller); var facadeFactory = container.Resolve <FooFacade.Factory>(); Assert.That(!MyInit.HasInitialized); var facade = facadeFactory.Create(); Assert.That(MyInit.HasInitialized); Assert.That(!MyTickable.HasTicked); facade.Tick(); Assert.That(MyTickable.HasTicked); Assert.That(!MyDispose.HasDisposed); facade.Dispose(); Assert.That(MyDispose.HasDisposed); }