public static ITypeFactory GetAutoWiredFunqTypeFactory() { var container = GetContainerWithDependencies(); var typeFactory = new AutoWireContainer(container); typeFactory.RegisterTypes(typeof(StoreCustomersService), typeof(GetCustomerService)); return typeFactory; }
public void With_Funq_and_Expressions() { var container = new Container(); container.Register<IFoo>(c => new Foo()); container.Register<IBar>(c => new Bar()); var funqlet = new AutoWireContainer(container); funqlet.RegisterTypes(typeof(AutoWireService)); Console.WriteLine("With_Funq_and_Expressions(): {0}", Measure(() => container.Resolve<AutoWireService>(), Times)); }
/// <summary> /// Auto-scans the provided assemblies for a <see cref="IValidator"/> /// and registers it in the provided IoC container. /// </summary> /// <param name="container">The IoC container</param> /// <param name="assemblies">The assemblies to scan for a validator</param> public static void RegisterValidators(this Container container, params Assembly[] assemblies) { var autoWire = new AutoWireContainer(container); foreach (var assembly in assemblies) { foreach (var validator in assembly.GetTypes() .Where(t => t.IsOrHasGenericInterfaceTypeOf(typeof(IValidator<>)))) { RegisterValidator(autoWire, validator); } } }
private static void RegisterValidator(AutoWireContainer autoWire, Type validator) { var baseType = validator.BaseType; while (!baseType.IsGenericType) { baseType = baseType.BaseType; } var dtoType = baseType.GetGenericArguments()[0]; var validatorType = typeof (IValidator<>).MakeGenericType(dtoType); autoWire.RegisterType(validator, validatorType); }
public FunqControllerFactory(Container container) { this.funqBuilder = new AutoWireContainer(container) { Scope = ReuseScope.None //don't re-use instances }; // Also register all the controller types as transient var controllerTypes = (from type in Assembly.GetCallingAssembly().GetTypes() where typeof(IController).IsAssignableFrom(type) select type).ToList(); funqBuilder.RegisterTypes(controllerTypes); }
public void Can_AutoWire_types_dynamically_with_expressions() { var serviceType = typeof(AutoWireService); var container = new Container(); container.Register<IFoo>(c => new Foo()); container.Register<IBar>(c => new Bar()); var typeContainer = new AutoWireContainer(container); typeContainer.RegisterTypes(serviceType); var service = container.Resolve<AutoWireService>(); Assert.That(service.Foo, Is.Not.Null); Assert.That(service.Bar, Is.Not.Null); }
public FunqValidatorFactory(Container container=null) { this.funqBuilder = new AutoWireContainer(container ?? AppHostBase.Instance.Container) { Scope = ReuseScope.None //don't re-use instances }; }