private static void ApplyOptions(TinyIoCContainer.RegisterOptions r, DefaultRegistrationBuilderBase instanceRegistration) { object scopeConfigObj; var singleton = false; if (instanceRegistration.Options.TryGetValue("Singleton", out scopeConfigObj)) { singleton = (bool)scopeConfigObj; } if (singleton) { r.AsSingleton(); } }
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); }
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); }
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); }