/// <inheritdoc />
 public override int GetHashCode()
 {
     unchecked {
         int hashCode = SchemeName.ToLowerInvariant().GetHashCode();
         hashCode = (hashCode * 397) ^ (SchemeConfiguration != null ? SchemeConfiguration.GetHashCodeExt() : 0);
         hashCode = (hashCode * 397) ^ EntropyScheme.GetHashCode();
         hashCode = (hashCode * 397) ^ (EntropySchemeData != null ? EntropySchemeData.GetHashCodeExt() : 0);
         return(hashCode);
     }
 }
 /// <inheritdoc />
 public bool Equals(PayloadConfiguration other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(String.Equals(SchemeName, other.SchemeName, StringComparison.OrdinalIgnoreCase) &&
            (SchemeConfiguration == null
                ? other.SchemeConfiguration == null
                : SchemeConfiguration.SequenceEqualShortCircuiting(other.SchemeConfiguration)) &&
            EntropyScheme == other.EntropyScheme &&
            (EntropySchemeData == null
                ? other.EntropySchemeData == null
                : EntropySchemeData.SequenceEqualShortCircuiting(other.EntropySchemeData)));
 }