/// <summary>
 /// Deserializes the instance of this class.
 /// </summary>
 /// <param name="info">Serialization info.</param>
 /// <param name="context">Streaming context.</param>
 private AdvancedConverterStruct(SerializationInfo info, StreamingContext context)
 {
     AdvancedConverter = (AdvancedConverter <TFrom, TTo>)info.GetValue("AdvancedConverter", typeof(AdvancedConverter <TFrom, TTo>));
     Convert           = AdvancedConverter == null ? null : AdvancedConverter.Convert;
     IsRough           = AdvancedConverter == null ? true : AdvancedConverter.IsRough;
 }
        // Constructors

        /// <summary>
        /// Initializes a new instance of this type.
        /// </summary>
        /// <param name="advancedConverter">Converter to provide the delegates for.</param>
        private AdvancedConverterStruct(AdvancedConverter <TFrom, TTo> advancedConverter)
        {
            AdvancedConverter = advancedConverter;
            Convert           = AdvancedConverter == null ? null : AdvancedConverter.Convert;
            IsRough           = AdvancedConverter == null ? true : AdvancedConverter.IsRough;
        }