示例#1
0
        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);
        }
示例#3
0
 protected abstract TConfiguredValue CreateValue(string name, DefaultValuePreference defaultValuePreference);
示例#4
0
 public Child(string name, DefaultValuePreference defaultValuePreference, Func <TParent, TBuilder> builderFactory)
     : base(name, defaultValuePreference)
 {
     _builderFactory = builderFactory ?? throw new ArgumentNullException(nameof(builderFactory));
 }
示例#5
0
 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));
 }