/// <summary> /// Creates a new reactive processing metadata object using the specified metadata operations provider. /// </summary> /// <param name="provider">Metadata operations provider.</param> /// <param name="expressionServices">Expression services object, used to perform expression tree manipulations.</param> public ReactiveMetadataProxy(IReactiveMetadataServiceProvider provider, IReactiveExpressionServices expressionServices) { _provider = provider ?? throw new ArgumentNullException(nameof(provider)); _expressionServices = expressionServices ?? throw new ArgumentNullException(nameof(expressionServices)); var thisParameter = ResourceNaming.GetThisReferenceExpression(this); expressionServices.RegisterObject(this, thisParameter); }
/// <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)) { }