Example #1
0
        public T GetInstance <T>(string key, DataContext db)
        {
            var list = new ParameterOverrides();

            list.Add(key, db);
            return(GetUnityContainer().Resolve <T>(list));
        }
        public static T Resolve <T>(params IParameter[] parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            if (parameters.Length > 0)
            {
                ParameterOverrides paramsOverride = new ParameterOverrides();

                foreach (var parameter in parameters)
                {
                    if (parameter.Value != null)
                    {
                        paramsOverride.Add(parameter.Name, parameter.Value);
                    }
                }

                return(m_container.Value.Resolve <T>(paramsOverride));
            }
            else
            {
                return(m_container.Value.Resolve <T>());
            }
        }
Example #3
0
        public static T Resolve <T>(string name, params KeyValuePair <string, object>[] parameters)
        {
            ParameterOverrides ss = new ParameterOverrides();

            parameters.ToList().ForEach(t => ss.Add(t.Key, t.Value));
            return(Container.Resolve <T>(name, ss));
        }
        public IEnumerable <MessageHandlerBase> GetHandlers(ILogger log, string connection_string_name)
        {
            var overrides = new ParameterOverrides {
                { "log", log }, { "connection_string_name", connection_string_name }
            };

            return(ApiSetup.Container.ResolveAll <MessageHandlerBase>(overrides));
        }
Example #5
0
        public T ResolveWithParent <T>(ObservableObjectBase parent)
        {
            var parameterOverride = new ParameterOverrides {
                { "target", parent }
            };

            return(_container.Resolve <T>(parameterOverride));
        }
Example #6
0
        public static ITenantedAccountManager GetTenantedAccountManager()
        {
            var parameterOverrides = new ParameterOverrides
            {
                { "connectionString", UserManagementConnectionString }
            };

            return(IocContainer.Resolve <ITenantedAccountManager>(parameterOverrides));
        }
Example #7
0
        /// <summary>
        /// 返回构结函数带参数
        /// </summary>
        /// <typeparam name="T">依赖对象</typeparam>
        /// <param name="configName">配置文件中指定的文字(没写会报异常)</param>
        /// <param name="parameterList">参数集合(参数名,参数值)</param>
        /// <returns></returns>
        public T GetServer <T>(string configName, Dictionary <string, object> parameterList)
        {
            var list = new ParameterOverrides();

            foreach (var item in parameterList)
            {
                list.Add(item.Key, item.Value);
            }
            return(_container.Resolve <T>(configName, list));
        }
Example #8
0
        public static T Resolve <T>(IDictionary <string, object> arguments)
        {
            T ret = default(T);

            ParameterOverrides overrides = GetParametersOverrideFromDictionary <T>(arguments);

            ret = Container.Resolve <T>(overrides);

            return(ret);
        }
Example #9
0
        public BugPanelViewModel CreateBugViewPanel(ProjectViewModel project, BugViewModel bug)
        {
            ParameterOverrides parameters = new ParameterOverrides()
            {
                { "activeProj",  project },
                { "selectedBug", bug     }
            };

            return _Container.Resolve<BugPanelViewModel>("ViewPanel",  parameters);
        }
Example #10
0
        public BugPanelViewModel CreateBugViewPanel(ProjectViewModel project, BugViewModel bug)
        {
            ParameterOverrides parameters = new ParameterOverrides()
            {
                { "activeProj", project },
                { "selectedBug", bug }
            };

            return(_Container.Resolve <BugPanelViewModel>("ViewPanel", parameters));
        }
Example #11
0
        /// <summary>
        /// 返回构结函数带参数
        /// </summary>
        /// <typeparam name="T">依赖对象</typeparam>
        /// <param name="parameterList">参数集合(参数名,参数值)</param>
        /// <returns></returns>
        public static T GetServer <T>(Dictionary <string, object> parameterList)
        {
            var list = new ParameterOverrides();

            foreach (KeyValuePair <string, object> item in parameterList)
            {
                list.Add(item.Key, item.Value);
            }
            return(container.Resolve <T>(list));
        }
Example #12
0
        public T GetInstance <T>(Dictionary <string, object> parameters)
        {
            var list = new ParameterOverrides();

            foreach (KeyValuePair <string, object> item in parameters)
            {
                list.Add(item.Key, item.Value);
            }
            return(GetUnityContainer().Resolve <T>(list));
        }
Example #13
0
        public IBotCommand Create(CommandInfo commandInfo, ITelegramBotClient botClient, BotLogger logger)
        {
            var overrides = new ParameterOverrides
            {
                { "botClient", botClient },
                { "logger", logger }
            };

            return(_container.Resolve(commandInfo.CommandType, overrides) as IBotCommand);
        }
        private static ParameterOverrides GetParametersOverrideFromDictionary <T>(IDictionary <string, object> arguments)
        {
            ParameterOverrides resolverOverride = new ParameterOverrides();

            foreach (string key in arguments.Keys)
            {
                resolverOverride.Add(key, arguments[key]);
            }
            return(resolverOverride);
        }
        public static T Resolve <T>(params KeyValuePair <string, object>[] parameters)
        {
            var overrides = new ParameterOverrides();

            foreach (var parameter in parameters)
            {
                overrides.Add(parameter.Key, parameter.Value);
            }

            return(Unity.Resolve <T>(overrides));
        }
Example #16
0
        public IRegistrationSuccessPanelViewModel CreateRegistrationSuccessPanel(String username, IRegistrationViewModel window)
        {
            ParameterOverrides parameters = new ParameterOverrides()
            {
                { "username", username },
                { "regwindow", window }
            };


            return(_Container.Resolve <IRegistrationSuccessPanelViewModel>(parameters));
        }
Example #17
0
        /// <summary>
        /// Извлекает из контейнера инстанс.
        /// </summary>
        /// <typeparam name="T">Тип извлекаемого объекта.</typeparam>
        /// <param name="parameters">Список параметров, которые будут переданы в констркуктор.</param>
        /// <returns>Объект типа Т.</returns>
        public T Resolve <T>(IDictionary <string, object> parameters)
        {
            var parameterOverrides = new ParameterOverrides();

            foreach (var parameter in parameters)
            {
                parameterOverrides.Add(parameter.Key, parameter.Value);
            }

            return(Container.Resolve <T>(parameterOverrides));
        }
Example #18
0
        /// <summary>
        /// Convert dictionary of parameters to Unity ParameterOverrides
        /// </summary>
        /// <param name="objectParams"></param>
        /// <returns></returns>
        private ParameterOverrides GetParameterOverrides(IEnumerable <KeyValuePair <string, object> > objectParams)
        {
            var parameterOverrides = new ParameterOverrides();

            foreach (KeyValuePair <string, object> item in objectParams)
            {
                parameterOverrides.Add(item.Key, item.Value);
            }

            return(parameterOverrides);
        }
        /// <summary>
        /// Resolves the type T using the provided parameters.
        /// </summary>
        /// <typeparam name="T">The type.</typeparam>
        /// <param name="parameters">The parameters.</param>
        /// <returns></returns>
        public T Resolve <T>(Dictionary <string, object> parameters)
        {
            var parameterOverrides = new ParameterOverrides();

            foreach (var parameter in parameters)
            {
                parameterOverrides.Add(parameter.Key, parameter.Value);
            }

            return((T)_iocContainer.Resolve(typeof(T), parameterOverrides.OnType <T>()));
        }
Example #20
0
        /// <summary>
        /// Resolves with Type T
        /// </summary>
        /// <typeparam name="T">Type to resolve</typeparam>
        /// <param name="parameters">List of parameters</param>
        /// <returns></returns>
        protected override T ResolveInstance <T>(params Parameter[] parameters)
        {
            ParameterOverrides allParams = new ParameterOverrides();

            foreach (var param in parameters)
            {
                allParams.Add(param.ParameterName, param.ParameterValue);
            }

            return(_container.Resolve <T>(allParams));
        }
Example #21
0
        /// <summary>
        /// Gets an object based on the unity confiuration container 'name'. Runtime objects may be injected as
        /// key/value pairs via a <see cref="Dictionary"/> object
        /// </summary>
        /// <typeparam name="T">Type of object expected</typeparam>
        /// <param name="alias">The unity container registerd name (from configuration)</param>
        /// <param name="constructorArguments">Runtime objects to be injected</param>
        /// <returns></returns>
        public T GetObjectByAlias <T>(String alias, Dictionary <string, object> constructorArguments) where T : class
        {
            ParameterOverrides constArgs = new ParameterOverrides();

            if (constructorArguments != null)
            {
                foreach (KeyValuePair <string, object> kvp in constructorArguments)
                {
                    constArgs.Add(kvp.Key, kvp.Value);
                }
            }
            return(this.GetObjectByAlias <T>(alias, constArgs));
        }
Example #22
0
        public object GetInstance(Type type, params IResolutionArgument[] parameters)
        {
            var args = new ParameterOverrides();

            var constructorParameters = parameters.OfType <ConstructorParameter, IResolutionArgument>();

            for (int i = 0; i < constructorParameters.Length; i++)
            {
                var parameter = constructorParameters[i];
                args.Add(parameter.Name, parameter.Value);
            }

            return(container.Resolve(type, args));
        }
Example #23
0
        /// <summary>
        /// Override Multiple Parameters
        /// </summary>
        private async void Test42()
        {
            _unityContainer.RegisterType <IDriver, UWPDriverMultiOverride>();

            var p = new ParameterOverrides
            {
                { "car1", new Audi() },
                { "carKey1", new AudiKey() },
                { "car2", new BMW() },
                { "carKey2", new BMWKey() }
            };
            var driver = _unityContainer.Resolve <IDriver>(p);
            await driver.RunCarAsync();
        }
Example #24
0
        public static T Resolve <T>(IDictionary <string, object> paramDict = null)
        {
            var list = new ParameterOverrides();

            if (paramDict != null && paramDict.Count > 0)
            {
                foreach (var item in paramDict)
                {
                    list.Add(item.Key, item.Value);
                }
            }

            return(Container.Resolve <T>(list));
        }
        public void WhenInjectingConstructorWithOverridesCollection()
        {
            var container = new UnityContainer()
                            .RegisterType <SubjectType1ToInject>(new InjectionConstructor(1, "abc"));

            ParameterOverrides overrides = new ParameterOverrides();

            overrides.Add("y", "string");
            overrides.Add("x", 123);

            var result = container.Resolve <SubjectType1ToInject>(overrides);

            Assert.AreEqual <int>(result.X, 123);
            Assert.AreEqual <string>(result.Y, "string");
        }
Example #26
0
        public static object GetInstance(Type objectType, object anonymousParameters)
        {
            ParameterOverrides parameters = null;

            if (anonymousParameters != null)
            {
                parameters = new ParameterOverrides();
                var apType = anonymousParameters.GetType();
                foreach (var parameter in apType.GetProperties())
                {
                    parameters.Add(parameter.Name, parameter.GetValue(anonymousParameters));
                }
            }
            return(UnityResolution.Container.Resolve(objectType, parameters));
        }
Example #27
0
        public static T GetInstance <T>(object anonymousParameters)
        {
            Type objectType = typeof(T);
            ParameterOverrides parameters = null;

            if (anonymousParameters != null)
            {
                parameters = new ParameterOverrides();
                foreach (var parameter in anonymousParameters.GetType().GetProperties())
                {
                    parameters.Add(parameter.Name, parameter.GetValue(parameter));
                }
            }
            return((T)UnityResolution.Container.Resolve(objectType, parameters));
        }
Example #28
0
        protected override void ConfigureViewModelLocator()
        {
            ViewModelLocationProvider.SetDefaultViewModelFactory((view, type) =>
            {
                ParameterOverrides overrides = null;

                var page = view as Page;
                if (page != null)
                {
                    overrides = new ParameterOverrides
                    {
                        { "navigationService", CreateNavigationService(page) }
                    };
                }

                return(Container.Resolve(type, overrides));
            });
        }
Example #29
0
        public object GetInstance(Type type, string key, params IResolutionArgument[] parameters)
        {
            try
            {
                var args = new ParameterOverrides();

                var constructorParameters = parameters.OfType <ConstructorParameter, IResolutionArgument>();
                for (int i = 0; i < constructorParameters.Length; i++)
                {
                    var parameter = constructorParameters[i];
                    args.Add(parameter.Name, parameter.Value);
                }

                return(container.Resolve(type, key, args));
            }
            catch (ResolutionFailedException)
            {
                throw new RegistrationNotFoundException(type, key);
            }
        }
        /// <summary>
        /// Adds the trait instance <see cref="T"/> to this collection, returning the actual instance
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public T Add <T>() where T : IViewModelTrait
        {
            IViewModelTrait oldBehaviour;

            if (_children.TryGetValue(typeof(T), out oldBehaviour))
            {
                oldBehaviour.Dispose();
                _composite.Remove(oldBehaviour);
            }

            var parameterOverride = new ParameterOverrides {
                { "target", _parent }
            };
            var newBehaviour = _container.Resolve <T>(parameterOverride);

            _children[typeof(T)] = newBehaviour;
            newBehaviour.DisposeWith(this);

            return(newBehaviour);
        }
Example #31
0
        protected override void ConfigureViewModelLocator()
        {
            ViewModelLocationProvider.SetDefaultViewModelFactory((view, type) =>
            {
                ParameterOverrides overrides = null;

                var page = view as Page;
                if (page != null)
                {
                    var navService = new PageNavigationService();
                    ((IPageAware)navService).Page = page;

                    overrides = new ParameterOverrides
                    {
                        { "navigationService", navService }
                    };
                }

                return Container.Resolve(type, overrides);
            });
        }
Example #32
0
        protected override void ConfigureViewModelLocator()
        {
            ViewModelLocationProvider.SetDefaultViewModelFactory((view, type) =>
            {
                ParameterOverrides overrides = null;

                var page = view as Page;
                if (page != null)
                {
                    var navService = Container.Resolve <UnityPageNavigationService>();
                    ((IPageAware)navService).Page = page;

                    overrides = new ParameterOverrides
                    {
                        { "navigationService", navService }
                    };
                }

                return(Container.Resolve(type, overrides));
            });
        }
        private static MainPageViewModel GetViewModelInstance()
        {
            SetupColors();

            var turtleViewModel = new TurtleViewModel();
            _dialog = new ModalDialogStub();
            _fileOperations = new FileOperationsStub();

            UnityContainer.
                RegisterInstance<IVariableHandler<float>>(FloatVariableHandler.Instance).
                RegisterInstance<ITurtleViewModel>(turtleViewModel).
                RegisterInstance<IFileOperations>(_fileOperations).
                RegisterInstance<IModalSaveDialog>(_dialog).
                RegisterInstance<ITurtleGraphicsFunctionHandler>(TurtleGraphicsFunctionHandler.Instance).
                RegisterType<IModalLoadDialog, SilverlightLoadModelDialog>().
                 RegisterType<IModalPrintDialog, SilverlightModalPrintDialog>().
                RegisterType<ICanceller, Canceller>(new ContainerControlledLifetimeManager()).
                RegisterType<ITurtleGraphicsExecutionEngine, TurtleGraphicsExecutionEngine>(new ContainerControlledLifetimeManager()).
                RegisterType<ITurtleGraphicsSyntaxAnalyser, TurtleGraphicsSyntaxAnalyser>(new ContainerControlledLifetimeManager()).
                RegisterType<ITurtleGraphicsLexicalAnalyser, TurtleGraphicsLexicalAnalyser>(new ContainerControlledLifetimeManager()).
                RegisterType<ITurtleGraphicsControlStructures, TurtleGraphicsControlStructures>(new ContainerControlledLifetimeManager()).
                RegisterType<ITurtleGraphicsRuntime, SilverlightTurtleGraphicsRuntime>(new ContainerControlledLifetimeManager()).
                RegisterType<ITurtleGraphicsCommandMatcher, TurtleGraphicsReflectionMatcher>(new ContainerControlledLifetimeManager()).
                RegisterType<MainPageViewModel>("MAINPAGEVIEWMODEL", new ContainerControlledLifetimeManager());

            _turtlePointer = new Image { Width = 16, Height = 16 };
            _debugWindow = new TextBox();
            _tiErrorTab = new TabItem();
            _drawingSurface = new Canvas { Width = 1000, Height = 1000 };
            _scrollViewer = new ScrollViewer();

            var parameterOverrides = new ParameterOverrides
                                         {
                                             {"drawingSurface", _drawingSurface},
                                             {"turtlePointer", _turtlePointer},
                                             {"colors", _colors},
                                             {"startForeColorIdx", 1},
                                             {"startBackColorIdx", 2},
                                             {"debugWindow", _debugWindow},
                                             {"initialPenWidth", 1},
                                             {"screenScroller", _scrollViewer},
                                         };

            var wpfTurtleGraphics = UnityContainer.Resolve<SilverlightTurtleGraphicsRuntime>(parameterOverrides);

            parameterOverrides = new ParameterOverrides
                                         {
                                             {"turtleGraphicsSystem", wpfTurtleGraphics},
                                         };

            UnityContainer.Resolve<ITurtleGraphicsCommandMatcher>(parameterOverrides);

            parameterOverrides = new ParameterOverrides
                                         {
                                             {"turtleProgramStorage", new TurtleProgramStorage()},
                                             {"turtlePointer", _turtlePointer},
                                             {"debugWindow", _debugWindow},
                                             {"tiErrorTab", _tiErrorTab},
                                             {"turtleGraphicsRuntime", wpfTurtleGraphics},
                                             {"startForeColorIndex", 1},
                                             {"initialPenWidth", 1},
                                             {"colors", _colors},
                                         };

            return UnityContainer.Resolve<MainPageViewModel>("MAINPAGEVIEWMODEL", parameterOverrides);
        }
Example #34
0
 private void AddReferenceInProjects(IList<string> referencesToAdd, IList<string> projects)
 {
     if (referencesToAdd.Count > 0 && projects.Count > 0)
     {
         foreach (var projectPath in _projects)
         {
             var fileName = Path.GetFileName(projectPath);
             var parameters = new ParameterOverrides();
             parameters.Add("path", projectPath);
             var project = _container.Resolve<IProject>("", parameters);
             var projectHasChanged = false;
             foreach (var reference in referencesToAdd)
             {
                 if (!ProjectContainsAlreadyTheReference(project, reference))
                 {
                     project.AddItem("Reference", reference, null);
                     projectHasChanged = true;
                 }
                 else
                 {
                     _console.WriteLine(reference + " is already in " + fileName);
                 }
             }
             if (projectHasChanged)
             {
                 project.Save();
                 _console.WriteLine(fileName + " has new references added.");
             }
         }
     }
 }
Example #35
0
        /// <summary>
        /// Identifica e mapeia os parâmetros do construtor.
        /// </summary>
        /// <param name="construtor">Construtor do objeto.</param>
        /// <param name="parametros">Parâmetros de construção.</param>
        /// <returns>Retorna o mapeamento dos parâmetros do construtor.</returns>
        private ParameterOverrides RetornaMapeamentoDeParametros(ConstructorInfo construtor, IList<object> parametros)
        {
            var parametrosOverrides = new ParameterOverrides();

            var informacoesDosParametros = construtor.GetParameters();
            for (var i = 0; i < informacoesDosParametros.Length; i++)
            {
                parametrosOverrides.Add(informacoesDosParametros[i].Name, parametros[i]);
            }

            return parametrosOverrides;
        }
        public void WhenInjectingConstructorWithOverridesCollection()
        {
            var container = new UnityContainer()
                .RegisterType<SubjectType1ToInject>(new InjectionConstructor(1, "abc"));
         
            ParameterOverrides overrides = new ParameterOverrides();
            overrides.Add("y", "string");
            overrides.Add("x", 123);

            var result = container.Resolve<SubjectType1ToInject>(overrides);

            Assert.AreEqual<int>(result.X, 123);
            Assert.AreEqual<string>(result.Y, "string");
        }
        public void WhenOverridingContainerHavingMultiplePolymorphicTypes()
        {
            IUnityContainer container = new UnityContainer();

            container.RegisterType<ISubjectTypeToInject, SubjectType1ToInject>("SubjectType1ToInject", new InjectionConstructor(1, "DefaultValue"));
            container.RegisterType<ISubjectTypeToInject, SubjectType2ToInject>("SubjectType2ToInject", new InjectionConstructor(2, "DefaultValue"));
            container.RegisterType<ISubjectTypeToInject, SubjectType3ToInject>("SubjectType3ToInject", new InjectionConstructor(3, "DefaultValue"));
            
            ParameterOverrides overrides = new ParameterOverrides();
            overrides.Add("x", 4);
            overrides.Add("y", "overriddenValue");

            System.Collections.Generic.IEnumerable<ISubjectTypeToInject> overriddenList1 = container.ResolveAll<ISubjectTypeToInject>(overrides);
            System.Collections.Generic.IEnumerable<ISubjectTypeToInject> defaultList = container.ResolveAll<ISubjectTypeToInject>();
            
            int count = 0;
            foreach (var item in overriddenList1)
            {
                ++count;
                Assert.AreEqual<int>(4, item.X);
                Assert.AreEqual<string>("overriddenValue", item.Y);
            }
            
            Assert.AreEqual<int>(3, count);
            
            count = 0;
            foreach (var item in defaultList)
            {
                ++count;

                Assert.AreEqual<string>("DefaultValue", item.Y);
            }
            
            Assert.AreEqual<int>(3, count);
        }
        private void ResolveDependancies()
        {
            var parameterOverrides = new ParameterOverrides
                                         {
                                             {"drawingSurface", turtleCanvas},
                                             {"turtlePointer", imgTurtle},
                                             {"colors", _colors},
                                             {"startForeColorIdx", StartForeColorIdx},
                                             {"startBackColorIdx", StartBackColorIdx},
                                             {"debugWindow", DebugWindow},
                                             {"initialPenWidth", InitialPenWidth},
                                             {"screenScroller", ScreenScroller},
                                         };

            var wpfTurtleGraphics = UnityContainer.Resolve<SilverlightTurtleGraphicsRuntime>(parameterOverrides);

            parameterOverrides = new ParameterOverrides
                                         {
                                             {"turtleGraphicsSystem", wpfTurtleGraphics},
                                         };

            UnityContainer.Resolve<ITurtleGraphicsCommandMatcher>(parameterOverrides);

            parameterOverrides = new ParameterOverrides
                                         {
                                             {"turtleProgramStorage", new TurtleProgramStorage()},
                                             {"turtlePointer", imgTurtle},
                                             {"debugWindow", DebugWindow},
                                             {"tiErrorTab", tiErrors},
                                             {"turtleGraphicsRuntime", wpfTurtleGraphics},
                                             {"startForeColorIndex", StartForeColorIdx},
                                             {"initialPenWidth", InitialPenWidth},
                                             {"colors", _colors},
                                         };

            var mvvm = UnityContainer.Resolve<MainPageViewModel>("MAINPAGEVIEWMODEL", parameterOverrides);

            DataContext = mvvm;
        }
 public IEnumerable<MessageHandlerBase> GetHandlers(ILogger log, string connection_string_name)
 {
     var overrides = new ParameterOverrides {{"log", log}, {"connection_string_name", connection_string_name}};
     return ApiSetup.Container.ResolveAll<MessageHandlerBase>(overrides);
 }
Example #40
0
        public IRegistrationSuccessPanelViewModel CreateRegistrationSuccessPanel(String username, IRegistrationViewModel window)
        {
            ParameterOverrides parameters = new ParameterOverrides()
            {
                { "username",  username },
                { "regwindow", window     }
            };

            return _Container.Resolve<IRegistrationSuccessPanelViewModel>(parameters);
        }