/// <summary>
        /// Verify each member in the non-strongly typed dictionary. <br />
        /// 字典验证入口
        /// </summary>
        /// <param name="keyValueCollections"></param>
        /// <returns></returns>
        public VerifyResult VerifyMany(IDictionary <string, object> keyValueCollections)
        {
            if (keyValueCollections is null)
            {
                return(_options.ReturnNullReferenceOrSuccess());
            }

            VerifyResult result1 = null, result2 = null, result3 = null;
            var          context = _objectResolver.Resolve <T>(keyValueCollections);

            if (_projectManager.TryResolve(_type, _name, out var project))
            {
                result1 = project.VerifyMany(context.GetValueMap());
            }

            if (_options.CustomValidatorEnabled)
            {
                result2 = CorrectEngine.ValidViaCustomValidators(context.GetValueMap(), _customValidatorManager.ResolveAll());
            }

            if (_options.AnnotationEnabled)
            {
                result3 = _annotationValidator.Verify(context);
            }

            if (result1 is null && result2 is null && result3 is null)
            {
                return(_options.ReturnUnregisterProjectForSuchTypeOrSuccess());
            }

            return(result1 is null
                ? VerifyResult.MakeTogether(result2, result3)
                : VerifyResult.Merge(result1, result2, result3));
        }
        /// <summary>
        /// Verify the entire entity <br />
        /// 验证入口
        /// </summary>
        /// <param name="instance"></param>
        /// <returns></returns>
        public VerifyResult Verify(T instance)
        {
            if (instance is null)
            {
                return(_options.ReturnNullReferenceOrSuccess());
            }

            VerifyResult result1 = null, result2 = null, result3 = null;
            var          context = _objectResolver.Resolve(instance);

            if (_projectManager.TryResolve(_type, _name, out var project))
            {
                result1 = project.Verify(context);
            }

            if (_options.CustomValidatorEnabled)
            {
                result2 = CorrectEngine.ValidViaCustomValidators(context, _customValidatorManager.ResolveAll());
            }

            if (_options.AnnotationEnabled)
            {
                result3 = _annotationValidator.Verify(context);
            }

            if (result1 is null && result2 is null && result3 is null)
            {
                return(_options.ReturnUnregisterProjectForSuchTypeOrSuccess());
            }

            return(result1 is null
                ? VerifyResult.MakeTogether(result2, result3)
                : VerifyResult.Merge(result1, result2, result3));
        }
        private VerifyResult VerifyOneInternal(VerifiableMemberContext memberContext)
        {
            VerifyResult result1 = null, result2 = null, result3 = null;

            if (_projectManager.TryResolve(_type, _name, out var project))
            {
                result1 = project.VerifyOne(memberContext);
            }
            if (_options.CustomValidatorEnabled)
            {
                result2 = CorrectEngine.ValidViaCustomValidators(memberContext, _customValidatorManager.ResolveAll());
            }
            if (_options.AnnotationEnabled)
            {
                result3 = _annotationValidator.VerifyOne(memberContext);
            }
            if (result1 is null && result2 is null && result3 is null)
            {
                return(_options.ReturnUnregisterProjectForSuchTypeOrSuccess());
            }
            return(result1 is null
                ? VerifyResult.MakeTogether(result2, result3)
                : VerifyResult.Merge(result1, result2, result3));
        }