/// <summary>
        /// Verification for VerifiableMemberContext
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        internal override CorrectVerifyVal Valid(VerifiableMemberContext context)
        {
            var value = GetValueFrom(context);

            if (!IsActivate(context, value))
            {
                return(CorrectVerifyVal.Ignore);
            }

            var verifyVal = CreateVerifyVal();

            if (context is null)
            {
                UpdateVal(verifyVal, value);
            }
            else
            {
                var regex = _regexFunc(context.GetParentInstance <T>());

                if (regex is null || value is null || !regex.IsMatch((string)value))
                {
                    UpdateVal(verifyVal, value, regex?.ToString());
                }
            }

            return(verifyVal);
        }
 /// <summary>
 /// Is activate, This method is only applicable to 'Verify'.
 /// </summary>
 /// <param name="context"></param>
 /// <param name="value"></param>
 /// <returns></returns>
 protected bool IsActivate(VerifiableMemberContext context, object value)
 {
     if (WithActivationConditions && ActivationConditions3 is not null && context.HasParentContext())
     {
         return(ActivationConditions3.Invoke(context.GetParentInstance(), value));
     }
     if (WithActivationConditions && ActivationConditions2 is not null)
     {
         return(ActivationConditions2.Invoke(value));
     }
     return(true);
 }