示例#1
0
        /// <inheritdoc/>
        public IConfiguresValueAccessor <TValidated, TValue> WhenValueIs <TDerived>(Action <IConfiguresValueAccessor <TValidated, TDerived> > derivedConfig)
            where TDerived : TValue
        {
            var derivedContext = builderContextFactory.GetPolymorphicContext(context, typeof(TDerived));
            var derivedBuilder = new ValueAccessorBuilder <TValidated, TDerived>(derivedContext,
                                                                                 ruleBuilderFactory,
                                                                                 validatorManifestFactory,
                                                                                 builderContextFactory);

            if (!(derivedConfig is null))
            {
                derivedConfig(derivedBuilder);
            }
            ruleBuilders.Add(derivedBuilder);

            return(this);
        }
        /// <inheritdoc/>
        public IConfiguresValidator <TValidated> WhenValueIs <TDerived>(Action <IConfiguresValidator <TDerived> > derivedConfig)
            where TDerived : TValidated
        {
            AssertNotRecursive();
            var derivedContext = ruleContextFactory.GetPolymorphicContext(context, typeof(TDerived));
            var derivedBuilder = new ValidatorBuilder <TDerived>(ruleContextFactory,
                                                                 ruleBuilderFactory,
                                                                 valueBuilderFactory,
                                                                 validatorManifestFactory,
                                                                 derivedContext);

            if (!(derivedConfig is null))
            {
                derivedConfig(derivedBuilder);
            }
            ruleBuilders.Add(derivedBuilder);

            return(this);
        }