/// <summary> /// Initialize a new instance of <see cref="StaticAnswerCaptchaFactory{TAnswer}"/> 。 /// </summary> /// <param name="answerSaver">The answer saver.</param> /// <param name="ticketFactory">The ticket factory.</param> /// <param name="disposeSaverAndFactory">Whether to dispose the saver and the factory or not when being disposed.</param> public StaticAnswerCaptchaFactory(ICaptchaAnswerSaver <TAnswer> answerSaver, ITicketFactory ticketFactory, bool disposeSaverAndFactory = false) { if (answerSaver == null) { throw new ArgumentNullException(nameof(answerSaver)); } if (ticketFactory == null) { throw new ArgumentNullException(nameof(ticketFactory)); } this.answerSaver = answerSaver; this.disposeSaverAndFactory = disposeSaverAndFactory; this.ticketFactory = ticketFactory; }
/// <summary> /// Initialize a new instance of <see cref="ImageCaptchaFactory"/>. /// </summary> /// <param name="answerSaver">The answer saver.</param> /// <param name="ticketFactory">The ticket factory.</param> /// <param name="settings">The settings.</param> /// <param name="disposeSaverAndFactory">Whether to dispose the saver and the factory or not when being disposed.</param> public ImageCaptchaFactory(ICaptchaAnswerSaver <string> answerSaver, ITicketFactory ticketFactory, Settings settings, bool disposeSaverAndFactory = false) : base(answerSaver, ticketFactory, disposeSaverAndFactory) { if (this.IsDisposed) { throw new ObjectDisposedException(null); } if (answerSaver == null) { throw new ArgumentNullException(nameof(answerSaver)); } if (settings == null) { throw new ArgumentNullException(nameof(settings)); } this.lengths = settings.AllowedLengths.ToArray(); this.fonts = settings.AllowedFonts.ToArray(); this.characters = settings.AllowedCharacters.ToArray(); }