/// <summary>
 /// Initializes a new instance of the <see cref="PolymorphicJsonCustomConverter{T1, T2}"/> class.
 /// </summary>
 /// <param name="firstDiscriminatorField">The field on which to choose first child type.</param>
 /// <param name="secondDiscriminatorField">The field on which to choose second child type.</param>
 internal PolymorphicJsonCustomConverter(string firstDiscriminatorField, string secondDiscriminatorField)
 {
     _firstDiscriminatorField    = firstDiscriminatorField;
     _secondDiscriminatorField   = secondDiscriminatorField;
     _firstSerializeConverter    = new PolymorphicSerializeJsonConverter <T1>(firstDiscriminatorField);
     _secondSerializeConverter   = new PolymorphicSerializeJsonConverter <T2>(secondDiscriminatorField);
     _firstDeserializeConverter  = new PolymorphicDeserializeJsonConverter <T1>(firstDiscriminatorField);
     _secondDeserializeConverter = new PolymorphicDeserializeJsonConverter <T2>(secondDiscriminatorField);
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="PolymorphicJsonCustomConverter{T1, T2}"/> class.
        /// </summary>
        /// <param name="firstDiscriminatorField">The field on which to choose first child type.</param>
        /// <param name="secondDiscriminatorField">The field on which to choose second child type.</param>
        public PolymorphicJsonCustomConverter(string firstDiscriminatorField, string secondDiscriminatorField)
        {
            this.firstSerializeConverter = new PolymorphicSerializeJsonConverter <T1>(firstDiscriminatorField);

            this.secondSerializeConverter = new PolymorphicSerializeJsonConverter <T2>(secondDiscriminatorField);

            this.firstDeserializeConverter = new PolymorphicDeserializeJsonConverter <T1>(firstDiscriminatorField);

            this.secondDeserializeConverter = new PolymorphicDeserializeJsonConverter <T2>(secondDiscriminatorField);
        }