Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        private AutofacMvxIocProvider CreateProvider(IContainer container = null)
        {
            if (container == null)
            {
                container = new ContainerBuilder().Build();
            }

            var provider = new AutofacMvxIocProvider(container);

            this._disposables.Add(provider);
            return(provider);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
 }
 public AutofacMvxIocProviderFixture()
 {
     _container = new ContainerBuilder().Build();
     _provider  = new AutofacMvxIocProvider(_container);
 }