Пример #1
0
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="scope"></param>
 /// <param name="disposalScope"></param>
 /// <param name="context"></param>
 /// <param name="action"></param>
 /// <param name="injectionContextCreator"></param>
 public FuncClass(IExportLocatorScope scope, IDisposalScope disposalScope, IInjectionContext context, ActivationStrategyDelegate action, IInjectionContextCreator injectionContextCreator)
 {
     _scope                   = scope;
     _disposalScope           = disposalScope;
     _context                 = context;
     _action                  = action;
     _injectionContextCreator = injectionContextCreator;
 }
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="scope"></param>
 /// <param name="disposalScope"></param>
 /// <param name="context"></param>
 /// <param name="action"></param>
 /// <param name="injectionContextCreator"></param>
 /// <param name="arg1Id"></param>
 /// <param name="arg2Id"></param>
 /// <param name="arg3Id"></param>
 /// <param name="arg4Id"></param>
 public FuncClass(IExportLocatorScope scope, IDisposalScope disposalScope, IInjectionContext context, ActivationStrategyDelegate action, IInjectionContextCreator injectionContextCreator, string arg1Id, string arg2Id, string arg3Id, string arg4Id)
 {
     _scope                   = scope;
     _disposalScope           = disposalScope;
     _context                 = context;
     _action                  = action;
     _injectionContextCreator = injectionContextCreator;
     _arg1Id                  = arg1Id;
     _arg2Id                  = arg2Id;
     _arg3Id                  = arg3Id;
     _arg4Id                  = arg4Id;
 }
Пример #3
0
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="compiler"></param>
 /// <param name="expressionBuilder"></param>
 /// <param name="attributeDiscoveryService"></param>
 /// <param name="exportExpressionBuilder"></param>
 /// <param name="injectionContextCreator"></param>
 public ActivationServices(IActivationStrategyCompiler compiler,
                           IActivationExpressionBuilder expressionBuilder,
                           IAttributeDiscoveryService attributeDiscoveryService,
                           IDefaultStrategyExpressionBuilder exportExpressionBuilder,
                           IInjectionContextCreator injectionContextCreator)
 {
     Compiler                   = compiler;
     ExpressionBuilder          = expressionBuilder;
     LifestyleExpressionBuilder = exportExpressionBuilder;
     InjectionContextCreator    = injectionContextCreator;
     AttributeDiscoveryService  = attributeDiscoveryService;
 }
Пример #4
0
            /// <summary>
            /// Default constructor
            /// </summary>
            /// <param name="scope"></param>
            /// <param name="request"></param>
            /// <param name="injectionContextCreator"></param>
            /// <param name="activationStrategy"></param>
            public DelegateExpression(IInjectionScope scope, IActivationExpressionRequest request,
                                      IInjectionContextCreator injectionContextCreator, IActivationStrategy activationStrategy)
            {
                _injectionContextCreator = injectionContextCreator;

                var newRequest = request.NewRequest(typeof(TResult), activationStrategy, typeof(TDelegate), RequestType.Other, null, true);

                newRequest.DisposalScopeExpression = request.Constants.RootDisposalScope;

                var activationExpression = request.Services.ExpressionBuilder.GetActivationExpression(scope, newRequest);

                _action = request.Services.Compiler.CompileDelegate(scope, activationExpression);

                _funcMethodInfo = typeof(FuncClass).GetTypeInfo().GetDeclaredMethod("Func");
            }
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="configuration">scope configuration</param>
 /// <param name="builder">activation expression builder</param>
 /// <param name="attributeDiscoveryService">attribute discovery service</param>
 /// <param name="exportExpressionBuilder">expression builder</param>
 /// <param name="injectionContextCreator">injection context creator</param>
 /// <param name="constants">expression constants</param>
 /// <param name="injectionStrategyDelegateCreator">injection strategy creator</param>
 public ActivationStrategyCompiler(IInjectionScopeConfiguration configuration,
                                   IActivationExpressionBuilder builder,
                                   IAttributeDiscoveryService attributeDiscoveryService,
                                   IDefaultStrategyExpressionBuilder exportExpressionBuilder,
                                   IInjectionContextCreator injectionContextCreator,
                                   IExpressionConstants constants,
                                   IInjectionStrategyDelegateCreator injectionStrategyDelegateCreator)
 {
     _configuration                    = configuration;
     _builder                          = builder;
     _attributeDiscoveryService        = attributeDiscoveryService;
     _constants                        = constants;
     _injectionStrategyDelegateCreator = injectionStrategyDelegateCreator;
     _exportExpressionBuilder          = exportExpressionBuilder;
     _injectionContextCreator          = injectionContextCreator;
 }
Пример #6
0
            /// <summary>
            /// Default constructor
            /// </summary>
            /// <param name="scope"></param>
            /// <param name="request"></param>
            /// <param name="injectionContextCreator"></param>
            /// <param name="activationStrategy"></param>
            public FuncExpression(IInjectionScope scope, IActivationExpressionRequest request,
                                  IInjectionContextCreator injectionContextCreator, IActivationStrategy activationStrategy)
            {
                _injectionContextCreator = injectionContextCreator;
                var requestType = request.ActivationType.GenericTypeArguments[1];

                var newRequest = request.NewRequest(requestType, activationStrategy, typeof(Func <TArg1, TResult>), RequestType.Other, null, true);

                newRequest.AddKnownValueExpression(CreateKnownValueExpression(request));

                newRequest.DisposalScopeExpression = request.Constants.RootDisposalScope;

                var activationExpression = request.Services.ExpressionBuilder.GetActivationExpression(scope, newRequest);

                _action = request.Services.Compiler.CompileDelegate(scope, activationExpression);
            }
Пример #7
0
            /// <summary>
            /// Default constructor
            /// </summary>
            /// <param name="scope"></param>
            /// <param name="request"></param>
            /// <param name="injectionContextCreator"></param>
            /// <param name="activationStrategy"></param>
            public FuncExpression(IInjectionScope scope, IActivationExpressionRequest request,
                                  IInjectionContextCreator injectionContextCreator, IActivationStrategy activationStrategy)
            {
                _injectionContextCreator = injectionContextCreator;

                var newRequest = request.NewRequest(typeof(TResult), activationStrategy, typeof(Func <T1, T2, T3, TResult>), RequestType.Other, null, true);

                newRequest.AddKnownValueExpression(CreateKnownValueExpression(request, typeof(T1), _t1Id));
                newRequest.AddKnownValueExpression(CreateKnownValueExpression(request, typeof(T2), _t2Id));
                newRequest.AddKnownValueExpression(CreateKnownValueExpression(request, typeof(T3), _t3Id));

                newRequest.DisposalScopeExpression = request.Constants.RootDisposalScope;

                var activationExpression = request.Services.ExpressionBuilder.GetActivationExpression(scope, newRequest);

                _action = request.Services.Compiler.CompileDelegate(scope, activationExpression);
            }
Пример #8
0
            /// <summary>
            /// Default constructor
            /// </summary>
            /// <param name="scope"></param>
            /// <param name="request"></param>
            /// <param name="injectionContextCreator"></param>
            /// <param name="activationStrategy"></param>
            public DelegateExpression(IInjectionScope scope, IActivationExpressionRequest request,
                                      IInjectionContextCreator injectionContextCreator, IActivationStrategy activationStrategy)
            {
                _injectionContextCreator = injectionContextCreator;

                var newRequest = request.NewRequest(typeof(TResult), activationStrategy, typeof(TDelegate), RequestType.Other, null, true);

                newRequest.AddKnownValueExpression(CreateKnownValueExpression(request, typeof(T1), _arg1Id));
                newRequest.AddKnownValueExpression(CreateKnownValueExpression(request, typeof(T2), _arg2Id));
                newRequest.AddKnownValueExpression(CreateKnownValueExpression(request, typeof(T3), _arg3Id));

                newRequest.SetLocateKey(request.LocateKey);
                newRequest.DisposalScopeExpression = request.Constants.RootDisposalScope;

                var activationExpression = request.Services.ExpressionBuilder.GetActivationExpression(scope, newRequest);

                _action = request.Services.Compiler.CompileDelegate(scope, activationExpression);

                _funcMethodInfo = typeof(FuncClass).GetTypeInfo().GetDeclaredMethod(nameof(FuncClass.Func));
            }
Пример #9
0
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="configuration"></param>
 /// <param name="builder"></param>
 /// <param name="attributeDiscoveryService"></param>
 /// <param name="exportExpressionBuilder"></param>
 /// <param name="injectionContextCreator"></param>
 /// <param name="constants"></param>
 /// <param name="injectionCreator"></param>
 /// <param name="linqToDynamicMethodConverter"></param>
 public DynamicMethodStrategyCompiler(IInjectionScopeConfiguration configuration, IActivationExpressionBuilder builder, IAttributeDiscoveryService attributeDiscoveryService, IDefaultStrategyExpressionBuilder exportExpressionBuilder, IInjectionContextCreator injectionContextCreator, IExpressionConstants constants, IInjectionStrategyDelegateCreator injectionCreator, ILinqToDynamicMethodConverter linqToDynamicMethodConverter) :
     base(configuration, builder, attributeDiscoveryService, exportExpressionBuilder, injectionContextCreator, constants, injectionCreator)
 {
     _linqToDynamicMethodConverter = linqToDynamicMethodConverter;
 }