public Func<IRequest, IArguments, Context, object> BuildExecuteFunc(MethodInfo methodInfo, IControllerFactory controllerFactory, IBinderFactory binderFactory) { var parameters = methodInfo.GetParameters(); var localVars = new List<ParameterExpression>(); var typedVars = new Dictionary<int, ParameterExpression>(); var paramVars = new List< ParameterExpression>(); var codeExprs = new List<Expression>(); foreach (ParameterInfo paramInfo in parameters) { // BuildAssign } var getControllerInstance = Expression.Call(Expression.Constant(controllerFactory), GetOrCreateFactoryMethodInfo); var callAction = Expression.Call(getControllerInstance, methodInfo, paramVars); var labelTarget = Expression.Label(typeof(object)); var returnValueExpr = Expression.Convert(callAction, typeof(object)); var retExpr = Expression.Return(labelTarget, returnValueExpr); var labelExpr = Expression.Label(labelTarget, Expression.Constant(null,typeof(object))); codeExprs.Add(retExpr); codeExprs.Add(labelExpr); Expression block = Expression.Block(localVars,codeExprs); if (block.CanReduce) { block = block.ReduceAndCheck(); } var lamda = Expression.Lambda<Func<IRequest, IArguments, Context,object>>(block); var result = lamda.Compile(); return result; }
public PhysicalFilesParser CreateTestPhysicalFilesParser() { var ctd = new CoreTestData(); var directoryMethods = ctd.CreateTestDirectoryMethods(); var hasher = ctd.CreateTestHasher(); var cdiProvider = ctd.CreateTestCurrentDatabaseInfoProvider(); IBinderFactory binderFactory = Substitute.For <IBinderFactory>(); return(new PhysicalFilesParser(directoryMethods, hasher, cdiProvider, binderFactory)); }
public PhysicalFilesParser( IDirectoryMethods directoryMethods, IHasher hasher, IActiveRackService activeRackService, IBinderFactory binderFactory ) { _directoryMethods = directoryMethods; _hasher = hasher; _activeRackService = activeRackService; _binderFactory = binderFactory; }
public ConstantTypeOptimisingVelocityExpressionFactory(IBinderFactory binderFactory, IImmutableDictionary <string, object> globals) : base(binderFactory) { var nullGlobals = globals?.Where(x => x.Value == null); if (nullGlobals?.Any() ?? false) { throw new ArgumentOutOfRangeException(nameof(globals), $"The following global variables must not be null: {String.Join(", ", nullGlobals.Select(x => x.Key))}"); } _globals = globals; }
internal BindingService(BindingServiceOptions bindingServiceOptions, IBinderFactory binderFactory) { _bindingServiceOptions = bindingServiceOptions; _binderFactory = binderFactory; }
public BindingService(IOptionsMonitor <BindingServiceOptions> optionsMonitor, IBinderFactory binderFactory) { _optionsMonitor = optionsMonitor; _binderFactory = binderFactory; }
public ReusableBinderFactory(IBinderFactory factory) { _rawBinderFactory = factory; }
public TcpServer(ILogger logger, IBinderFactory binderFactory) { _logger = logger; _binderFactory = binderFactory; _binders = new List<IBinder>(); }
internal BindingService(BindingServiceOptions bindingServiceOptions, IBinderFactory binderFactory, ILogger <BindingService> logger = null) { _bindingServiceOptions = bindingServiceOptions; _binderFactory = binderFactory; _logger = logger; }
public BindingService(IOptionsMonitor <BindingServiceOptions> optionsMonitor, IBinderFactory binderFactory, ILogger <BindingService> logger = null) { _optionsMonitor = optionsMonitor; _binderFactory = binderFactory; _logger = logger; }
public SomeLifecycle(IBinderFactory factory, IProcessor procesor) { Factory = factory; Processor = procesor; }
public SetDirective(Expression left, Expression right, SourceInfo sourceInfo, IBinderFactory binderFactory) : base(left, right, sourceInfo) { _binderFactory = binderFactory; }
public TcpServer(ILogger logger, IBinderFactory binderFactory) { _logger = logger; _binderFactory = binderFactory; _binders = new List <IBinder>(); }
/// <summary> /// Создаёт новый контейнер внедрения зависимостей c указанной в <paramref name="binderFactory"/> фабрикой объектов связывания /// </summary> /// <param name="binderFactory"/> public BaseContainer([DisallowNull] IBinderFactory?binderFactory = null) { BinderFactory = binderFactory ?? new DefaultBinderFactory(this); InitContainer(); }
public VelocityExpressionFactory(IBinderFactory binderFactory) { _binderFactory = binderFactory; }