protected ValueBase(string name, DefaultValuePreference defaultValuePreference, EqualityComparer <TContext> contextEqualityComparer = null) { State = ValueState.Default; Name = name ?? throw new ArgumentNullException(nameof(name)); DefaultValuePreference = defaultValuePreference; contextEqualityComparer = contextEqualityComparer ?? EqualityComparer <TContext> .Default; _values = new Dictionary <TContext, Option <T> >(contextEqualityComparer); }
protected override TConfigured CreateValue(string name, DefaultValuePreference defaultValuePreference) { var property = _valueFactory.Invoke(name, defaultValuePreference); foreach (var customizer in _customizers) { property.Customize(customizer); } return(property); }
protected abstract TConfiguredValue CreateValue(string name, DefaultValuePreference defaultValuePreference);
public Child(string name, DefaultValuePreference defaultValuePreference, Func <TParent, TBuilder> builderFactory) : base(name, defaultValuePreference) { _builderFactory = builderFactory ?? throw new ArgumentNullException(nameof(builderFactory)); }
public Value(string name, DefaultValuePreference defaultValuePreference, ValueProvider <T> defaultValueProvider) : base(name, defaultValuePreference) { _defaultValueProvider = defaultValueProvider ?? throw new ArgumentNullException(nameof(defaultValueProvider)); }
public Child(string name, DefaultValuePreference defaultValuePreference, Func <TResult, TChildBuilder> builderFactory) : base(name, defaultValuePreference, builderFactory) { }
protected override Value <TValue> CreateValue(string name, DefaultValuePreference defaultValuePreference) { return(new Value <TValue>(name, defaultValuePreference, _defaultValueProvider)); }