Beispiel #1
0
        private static bool TranslateFactoryRegistration(TinyIoCContainer container, DefaultRegistrationBuilderBase factoryRegistration, Type t)
        {
            var registrationType = factoryRegistration.GetType().GetGenericTypeDefinition();

            if (registrationType != typeof(DefaultFactoryRegistrationBuilder <>))
            {
                return(false);
            }
            var factory = (Delegate)factoryRegistration.GetType().GetProperty("Factory").GetGetMethod().Invoke(factoryRegistration, null);
            var r       = container.Register(t, (c, p) => factory.DynamicInvoke(new DependencyResolverWrapper(c)));

            ApplyOptions(r, factoryRegistration);

            return(true);
        }
Beispiel #2
0
        private static bool TranslateInstanceRegistration(TinyIoCContainer container, DefaultRegistrationBuilderBase instanceRegistration, Type t)
        {
            var registrationType = instanceRegistration.GetType().GetGenericTypeDefinition();

            if (registrationType != typeof(DefaultInstanceRegistrationBuilder <>))
            {
                return(false);
            }
            var instance = instanceRegistration.GetType().GetProperty("Instance").GetGetMethod().Invoke(instanceRegistration, null);
            var r        = container.Register(t, instance);

            ApplyOptions(r, instanceRegistration);

            return(true);
        }
Beispiel #3
0
        private static bool TranslateConstructorRegistration(TinyIoCContainer container, DefaultRegistrationBuilderBase constructorRegistration, Type t)
        {
            var registrationType = constructorRegistration.GetType().GetGenericTypeDefinition();

            if (registrationType != typeof(DefaultConstructorRegistrationBuilder <>))
            {
                return(false);
            }

            var r = container.Register(t, constructorRegistration.SelfType);

            ApplyOptions(r, constructorRegistration);
            return(true);
        }