/// <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; }
/// <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; }
/// <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; }
/// <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); }
/// <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); }
/// <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)); }
/// <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; }