public static void Main() { SimpleInjector injector = new SimpleInjector(); injector.Store(Console.Out, typeof(TextWriter)); injector.Store(Console.In, typeof(TextReader)); injector.Configure <ListTicketsScreen>(); injector.Configure <AddTicketScreen>(); injector.Configure <EditTicketScreen>(); injector.Configure <RemoveTicketScreen>(); injector.Store(new List <IScreen> { injector.FindByType <ListTicketsScreen>(), injector.FindByType <AddTicketScreen>(), injector.FindByType <EditTicketScreen>(), injector.FindByType <RemoveTicketScreen>() }, typeof(ICollection <IScreen>)); injector.Configure <ScreenManager>(); var screenManager = injector.FindByType <ScreenManager>(); screenManager.StartInputOutputLoop().Wait(); }
public void ShouldStoreByTypeIfASpecificTypeIsProvided() { var container = new SimpleInjector(); Cat cat = new Cat(); container.Store(cat, typeof(Animal)); var catFromStore = container.FindByType <Animal>(); Assert.Same(cat, catFromStore); }
public void ShouldStoreAPreBakedObjectWithoutConfiguringItsDependencies() { var container = new SimpleInjector(); var house = new House(); container.Store(house); var houseFromContainer = container.FindByType <House>(); Assert.NotNull(houseFromContainer); Assert.Null(house.Room); }
public void ShouldStoreAndLoadCollectionTypes() { var container = new SimpleInjector(); var houses = new List <House> { new House(), new House(), new House() }; container.Store(houses); var housesFromStore = container.FindByType <List <House> >(); Assert.Same(houses, housesFromStore); }
public void ShouldConfigureDotNetTypesIfAndOnlyIfAMatchIsAvailable() { var container = new SimpleInjector(); var houses = new List <House> { new House(), new House(), new House() }; container.Store(houses); container.Configure <Block>(); var block = container.FindByType <Block>(); Assert.Same(houses, block.Houses); }