protected TPluginType GetInstance <TPluginType>()
        {
            ExplicitArgsExpression expression = ObjectFactory.With(_unitOfWork);

            injectedInstances.Keys.ForEach(type => { expression = expression.With(type, injectedInstances[type]); });
            return(expression.GetInstance <TPluginType>());
        }
Пример #2
0
        public object GetInstance(Type type, params IResolutionArgument[] parameters)
        {
            ExplicitArgsExpression expression = null;

            if (parameters.OfType <ConstructorParameter, IResolutionArgument>().Length > 0)
            {
                ConstructorParameter parameter1 = parameters.OfType <ConstructorParameter, IResolutionArgument>()[0];

                expression = container.With(parameter1.Name).EqualTo(parameter1.Value);

                if (parameters.Length > 1)
                {
                    ConstructorParameter[] constructorArgs =
                        parameters.OfType <ConstructorParameter, IResolutionArgument>();

                    for (int i = 1; i < constructorArgs.Length; i++)
                    {
                        expression.With(constructorArgs[i].Name).EqualTo(constructorArgs[i].Value);
                    }
                }
            }

            return(expression != null?expression.GetInstance(type) : container.GetInstance(type));
        }
Пример #3
0
 public void Add <TTask>() where TTask : IQueueableTask
 {
     _queueableTaskManager.Add(_expression.GetInstance <TTask>());
 }