/// <summary> /// Converts an instance of <see cref="IAsyncReactiveResource"/> /// to its underlying representation for serialization. /// </summary> /// <param name="value">The original value.</param> /// <param name="sourceType">The source type.</param> /// <param name="targetType">The target type.</param> /// <returns>The converted instance.</returns> public override object ConvertTo(object value, Type sourceType, Type targetType) { // Base class knows how to write null values Debug.Assert(value != null); var resource = (IAsyncReactiveResource)value; var container = new ReactiveResourceContainer { Uri = resource.Uri, Expression = _expressionServices != null ? _expressionServices.Normalize(resource.Expression).ToExpressionSlim() : resource.Expression.ToExpressionSlim(), }; if (value is IAsyncReactiveDefinedResource definedResource) { container.State = (TState)definedResource.State; } else if (value is IAsyncReactiveProcessResource processResource) { container.State = (TState)processResource.State; } return(container); }
protected Resource(ReactiveResourceContainer container, IReactiveExpressionServices expressionServices) { Debug.Assert(container != null); Uri = container.Uri; _expression = new Lazy <Expression>(() => expressionServices != null ? expressionServices.Normalize(container.Expression.ToExpression()) : container.Expression.ToExpression()); }
public Subscription(ReactiveResourceContainer container, IReactiveExpressionServices expressionServices) : base(container, expressionServices) { }
public Stream(ReactiveResourceContainer container, IReactiveExpressionServices expressionServices) : base(container, expressionServices) { }
public Observable(ReactiveResourceContainer container, IReactiveExpressionServices expressionServices) : base(container, expressionServices) { }
public ProcessResource(ReactiveResourceContainer container, IReactiveExpressionServices expressionServices) : base(container, expressionServices) { State = container.State; }