private static void CreateIoCContainer() { var builder = new ContainerBuilder(); // This is an important step that ensures all the ViewModel's are loaded into the container. // Without this, it was observed that MvvmCross wouldn't register them by itself; needs more investigation. Assembly assembly = Assembly.GetExecutingAssembly(); builder.RegisterAssemblyTypes(assembly) .Where(t => t.Name.EndsWith("Service")) .AsImplementedInterfaces() .PropertiesAutowired(); builder.RegisterAssemblyTypes(assembly) .Where(t => t.Name.EndsWith("RestApi")) .AsSelf() .PropertiesAutowired(); builder.RegisterAssemblyTypes(assembly) .Where(t => t.Name.EndsWith("ViewModel")) .AsSelf() .PropertiesAutowired(); //builder.RegisterAssemblyTypes(assembly) // .AssignableTo<BaseViewModel>() // .As<IViewModel, BaseViewModel>() // .AsSelf() // .PropertiesAutowired(); AutofacMvxIocProvider container = new AutofacMvxIocProvider(builder); IocProvider.Instance.InitializeContainer(container); IocProvider.Instance.Container.Build(); }
private AutofacMvxIocProvider CreateProvider(IContainer container = null, MvxPropertyInjectorOptions options = null) { if (container == null) { container = new ContainerBuilder().Build(); } var provider = new AutofacMvxIocProvider(container, options ?? new MvxPropertyInjectorOptions()); this._disposables.Add(provider); return(provider); }
private AutofacMvxIocProvider CreateProvider(IContainer container = null) { if (container == null) { container = new ContainerBuilder().Build(); } var provider = new AutofacMvxIocProvider(container); this._disposables.Add(provider); return(provider); }
public void PropertyInjectionCanBeEnabled() { var builder = new ContainerBuilder(); var provider = new AutofacMvxIocProvider(builder.Build(), new AutofacPropertyInjectorOptions { InjectIntoProperties = MvxPropertyInjection.AllInterfaceProperties }); this._disposables.Add(provider); provider.RegisterType(() => new Concrete()); provider.RegisterType(typeof(Exception), () => new DivideByZeroException()); var resolved = provider.Resolve <Concrete>(); // Default behavior is to inject all unset properties. Assert.IsType <DivideByZeroException>(resolved.PropertyToInject); Assert.IsType <DivideByZeroException>(resolved.PropertyToSkip); }
public void PropertyInjectionCanBeCustomized() { var builder = new ContainerBuilder(); var options = new AutofacPropertyInjectorOptions { InjectIntoProperties = MvxPropertyInjection.AllInterfaceProperties, PropertyInjectionSelector = new DelegatePropertySelector((pi, obj) => pi.Name != "PropertyToSkip") }; var provider = new AutofacMvxIocProvider(builder.Build(), options); this._disposables.Add(provider); provider.RegisterType(() => new Concrete()); provider.RegisterType(typeof(Exception), () => new DivideByZeroException()); var resolved = provider.Resolve <Concrete>(); Assert.IsType <DivideByZeroException>(resolved.PropertyToInject); Assert.Null(resolved.PropertyToSkip); }
public AutofacMvxIocProviderFixture() { _container = new ContainerBuilder().Build(); _provider = new AutofacMvxIocProvider(_container); }
public void SetUp() { container = new ContainerBuilder().Build(); provider = new AutofacMvxIocProvider(container); }
public void SetUp() { _container = new ContainerBuilder().Build(); _provider = new AutofacMvxIocProvider(_container); }