/// <summary>
        /// Add a decoder.
        /// </summary>
        /// <param name="decoder"></param>
        /// <exception cref="ArgumentNullException"></exception>
        public void Add(IFormDecoder decoder)
        {
            if (decoder == null)
                throw new ArgumentNullException("decoder");
            if (_decoders.Contains(decoder))
                return;

            _decoders.Add(decoder);
        }
        /// <summary>
        /// Add a decoder.
        /// </summary>
        /// <param name="decoder"></param>
        /// <exception cref="ArgumentNullException"></exception>
        public void Add(IFormDecoder decoder)
        {
            if (decoder == null)
            {
                throw new ArgumentNullException("decoder");
            }
            if (_decoders.Contains(decoder))
            {
                return;
            }

            _decoders.Add(decoder);
        }