static void Main(string[] args) { bool doSimpleInversion = true; if (args.Length > 0) { doSimpleInversion = !(string.Compare(args[0], "auto", StringComparison.CurrentCultureIgnoreCase) == 0); } if (doSimpleInversion) { var types = new SimpleTypeRegistry(); var instances = new ResolvingInstanceCreator(types); var container = new TypeContainer(types, instances); DependencyInjection.Container = container; //DependencyInjection.Container.Register<ISpeak, Cat>(); //DependencyInjection.Container.Register<ISpeak, Dog>(); //DependencyInjection.Container.Register<ISpeak, Parrot>(); DependencyInjection.Container.Register <ISpeak, Hydra>(); } else { var types = new SimpleTypeRegistry(); var instances = new ResolvingInstanceCreator(types); var container = new AutoTypeContainer("brioche.walkingskeleton", types, instances); DependencyInjection.Container = container; } try { var speaker = DependencyInjection.Container.Resolve <ISpeak>(); speaker.Speak(); } catch (MissingMethodException) { } Console.WriteLine("Demo complete, press a key to close window"); Console.ReadKey(); }
public void Can_Create_Constructor_With_Builtin_Type_Parameters() { ICreateInstances creator = new ResolvingInstanceCreator(new SimpleTypeRegistry()); Assert.NotNull((ClassWithConstructorParameters)creator.CreateInstance(typeof(ClassWithConstructorParameters))); }
public void Can_Create_Explicit_Constructor() { ICreateInstances creator = new ResolvingInstanceCreator(new SimpleTypeRegistry()); Assert.NotNull((ClassWithPublicConstructor)creator.CreateInstance(typeof(ClassWithPublicConstructor))); }
public void Can_Create_Default_Constructor() { ICreateInstances creator = new ResolvingInstanceCreator(new SimpleTypeRegistry()); Assert.NotNull((SkeletonClass)creator.CreateInstance(typeof(SkeletonClass))); }
public void Can_Create_Simple_Types() { ICreateInstances creator = new ResolvingInstanceCreator(new SimpleTypeRegistry()); Assert.Equal(0, (Int32)creator.CreateInstance(typeof(Int32))); }