/// <summary>
        ///
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        private VerificationCode InnerCreate(VerificationCodeCreateParam param)
        {
            if (param == null)
            {
                return(null);
            }

            VerificationCode result = new VerificationCode();

            result.Key = Guid.NewGuid().ToString("N");

            switch (param.Type)
            {
            case CodeCharacterTypeEnum.Character:
                result.Code = RandomCodeCreator.CreatRandomChar(param.CharacterCount);
                break;

            case CodeCharacterTypeEnum.Number:
                result.Code = RandomCodeCreator.CreatRandomNum(param.CharacterCount);
                break;

            case CodeCharacterTypeEnum.NumberAndCharacter:
                result.Code = RandomCodeCreator.CreatRandomNumAndChar(param.CharacterCount);
                break;
            }
            result.Image = RandomCodeImageCreator.Create(result.Code, param.FontSize);

            return(result);
        }
        /// <summary>
        /// 创建校验码
        /// </summary>
        /// <returns></returns>
        public VerificationCode Create(VerificationCodeCreateParam param = null)
        {
            if (param == null)
            {
                param = new VerificationCodeCreateParam()
                {
                    CharacterCount = VerificationOptions.Default.CodeCharacterCount,
                    FontSize       = VerificationOptions.Default.CodeFontSize,
                    Type           = VerificationOptions.Default.CodeType
                };
            }

            VerificationCode result = InnerCreate(param);

            this.store.Add(result.Key, result.Code, VerificationOptions.Default.CodeCacheExpire);

            return(result);
        }