Esempio n. 1
0
        /// <summary>
        /// Creates a new reactive processing client using the specified client operations provider.
        /// </summary>
        /// <param name="provider">Client operations provider.</param>
        /// <param name="expressionServices">Expression services object, used to perform expression tree manipulations.</param>
        public ReactiveClientProxy(IReactiveClientServiceProvider provider, IReactiveExpressionServices expressionServices)
            : base(new AsyncReactiveQueryProvider(provider, expressionServices))
        {
            if (provider == null)
            {
                throw new ArgumentNullException(nameof(provider));
            }
            if (expressionServices == null)
            {
                throw new ArgumentNullException(nameof(expressionServices));
            }

            var thisParameter = ResourceNaming.GetThisReferenceExpression(this);

            expressionServices.RegisterObject(this, thisParameter);
            expressionServices.RegisterObject(base.Provider, Expression.Property(thisParameter, (PropertyInfo)ReflectionHelpers.InfoOf((IReactiveClientProxy c) => c.Provider)));
        }
 /// <summary>
 /// Creates a new reactive processing context using the specified services and with default proxy objects.
 /// </summary>
 /// <param name="expressionServices">Expression tree services.</param>
 /// <param name="clientService">Client-side operation services.</param>
 /// <param name="definitionService">Definition operation services.</param>
 /// <param name="metadataService">Metadata services.</param>
 protected ReactiveClientContext(IReactiveExpressionServices expressionServices, IReactiveClientServiceProvider clientService, IReactiveDefinitionServiceProvider definitionService, IReactiveMetadataServiceProvider metadataService)
     : this(expressionServices, new ReactiveClientProxy(clientService, expressionServices), new ReactiveDefinitionProxy(definitionService, expressionServices), new ReactiveMetadataProxy(metadataService, expressionServices))
 {
 }
 /// <summary>
 /// Creates a new reactive processing query provider using the specified data operations object.
 /// </summary>
 /// <param name="provider">Data operations object to delegate operations to.</param>
 /// <param name="expressionServices">Expression services object, used to perform expression tree manipulations.</param>
 public AsyncReactiveQueryProvider(IReactiveClientServiceProvider provider, IReactiveExpressionServices expressionServices)
     : base(expressionServices)
 {
     _provider = provider ?? throw new ArgumentNullException(nameof(provider));
 }