/// <summary> /// Initializes a new instance of the <see cref="PropertyValueObserverOnNotifyProperyChanged{TResult}" /> class. /// </summary> /// <param name="propertyExpression">The property expression.</param> /// <param name="isCached">if set to <c>true</c> [is cached].</param> /// <param name="safetyMode">The safety mode.</param> /// <param name="observerFlag">The observer flag.</param> internal PropertyValueObserverOnNotifyProperyChanged( [NotNull] Expression <Func <TResult> > propertyExpression, bool isCached, LazyThreadSafetyMode safetyMode, PropertyObserverFlag observerFlag) : base(propertyExpression, observerFlag) { (this.action, this.getter) = this.CreateNullableValueCachedGetter( this.CreateNullableValueGetter(Getter(propertyExpression, this.Tree)), isCached, safetyMode, () => this.OnPropertyChanged(nameof(this.Value))); }
/// <summary> /// Initializes a new instance of the /// <see cref="PropertyReferenceObserverOnNotifyProperyChanged{TParameter1, TResult}" /> class. /// </summary> /// <param name="parameter1">The parameter1.</param> /// <param name="propertyExpression">The property expression.</param> /// <param name="taskScheduler">The task scheduler.</param> /// <param name="isCached">if set to <c>true</c> [is cached].</param> /// <param name="safetyMode">The safety mode.</param> /// <param name="observerFlag">The observer flag.</param> /// <exception cref="System.ArgumentNullException">propertyExpression is null.</exception> internal PropertyReferenceObserverOnNotifyProperyChanged( [NotNull] TParameter1 parameter1, [NotNull] Expression <Func <TParameter1, TResult> > propertyExpression, TaskScheduler taskScheduler, bool isCached, LazyThreadSafetyMode safetyMode, PropertyObserverFlag observerFlag) : base(parameter1, propertyExpression, observerFlag) { (this.action, this.getter) = this.CreateNullableReferenceCachedGetter( this.CreateNullableReferenceGetter(Getter(propertyExpression, this.Tree, parameter1), taskScheduler), isCached, safetyMode, () => this.OnPropertyChanged(nameof(this.Value))); }
/// <summary> /// Initializes a new instance of the /// <see cref="PropertyObserverOnNotifyProperyChangedWithFallback{TParameter1, TResult}" /> class. /// </summary> /// <param name="parameter1">The parameter1.</param> /// <param name="propertyExpression">The property expression.</param> /// <param name="fallback">The fallback.</param> /// <param name="isCached">if set to <c>true</c> [is cached].</param> /// <param name="safetyMode">The safety mode.</param> /// <param name="observerFlag">The observer flag.</param> internal PropertyObserverOnNotifyProperyChangedWithFallback( [NotNull] TParameter1 parameter1, [NotNull] Expression <Func <TParameter1, TResult> > propertyExpression, TResult fallback, bool isCached, LazyThreadSafetyMode safetyMode, PropertyObserverFlag observerFlag) : base(parameter1, propertyExpression, observerFlag) { (this.action, this.getter) = this.CreateNullableCachedGetter( this.CreateNullableGetter(Getter(propertyExpression, this.Tree, fallback, parameter1)), isCached, safetyMode, () => this.OnPropertyChanged(nameof(this.Value))); }
/// <summary> /// Initializes a new instance of the <see cref="PropertyValueObserverOnNotifyProperyChanged{TParameter1, TResult}" /> /// class. /// </summary> /// <param name="parameter1">The parameter1.</param> /// <param name="propertyExpression">The property expression.</param> /// <param name="synchronizationContext">The synchronization context.</param> /// <param name="isCached">if set to <c>true</c> [is cached].</param> /// <param name="safetyMode">The safety mode.</param> /// <param name="observerFlag">The observer flag.</param> internal PropertyValueObserverOnNotifyProperyChanged( [NotNull] TParameter1 parameter1, [NotNull] Expression <Func <TParameter1, TResult> > propertyExpression, SynchronizationContext synchronizationContext, bool isCached, LazyThreadSafetyMode safetyMode, PropertyObserverFlag observerFlag) : base(parameter1, propertyExpression, observerFlag) { (this.action, this.getter) = this.CreateNullableValueCachedGetter( this.CreateNullableValueGetter( Getter(propertyExpression, this.Tree, parameter1), synchronizationContext), isCached, safetyMode, () => this.OnPropertyChanged(nameof(this.Value))); }