Пример #1
0
        internal IReliableQubscription Subscribe <T>(IReliableQbservable <T> observable, IReliableQbserver <T> observer, Uri subscriptionUri, object state)
        {
            var subscribe  = Expression.Parameter(typeof(Func <IReliableQbservable <T>, IReliableQbserver <T>, IReliableQubscription>), Constants.SubscribeUri);
            var expression = Expression.Invoke(subscribe, observable.Expression, observer.Expression);

            var normalized = _expressionServices.Normalize(expression);

            var subscription = new KnownReliableQubscription(normalized, subscriptionUri, this);

            CreateSubscription(subscription, state);

            return(subscription);
        }
Пример #2
0
        internal IReliableQubscription CreateSubscription <TArgs>(IReliableQubscriptionFactory <TArgs> factory, TArgs argument, Uri subscriptionUri, object state)
        {
            var expression = Expression.Invoke(factory.Expression, Expression.Constant(argument, typeof(TArgs)));

            var normalized = _expressionServices.Normalize(expression);

#pragma warning disable IDE0079 // Remove unnecessary suppression.
#pragma warning disable CA2000  // Dispose objects before losing scope. (IDisposable semantics are used for deletion behavior here.)

            var qubscription = new KnownReliableQubscription(normalized, subscriptionUri, this);
            CreateSubscriptionCore(qubscription, state);

#pragma warning restore CA2000
#pragma warning restore IDE0079

            return(qubscription);
        }
Пример #3
0
        internal IReliableQubscription CreateSubscription(IReliableQubscriptionFactory factory, Uri subscriptionUri, object state)
        {
            var expression = Expression.Invoke(factory.Expression);

            var normalized = _expressionServices.Normalize(expression);

#pragma warning disable IDE0079 // Remove unnecessary suppression.
#pragma warning disable CA2000  // Dispose objects before losing scope. (IDisposable semantics are used for deletion behavior here.)

            var qubscription = new KnownReliableQubscription(normalized, subscriptionUri, this);
            CreateSubscriptionCore(qubscription, state);

#pragma warning restore CA2000
#pragma warning restore IDE0079

            var parameterExpression   = Expression.Parameter(typeof(IReliableQubscription), subscriptionUri.AbsoluteUri);
            var parameterQubscription = new KnownReliableQubscription(parameterExpression, subscriptionUri, this);
            return(parameterQubscription);
        }