/// <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); }