Пример #1
0
        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)));
            }