// Overrides the ConvertTo method of TypeConverter. public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { // Convert from TlsVersionFlags to <"TLSv1">:<"SSLv3"> TlsVersionFlags tlsVersionFlags = (TlsVersionFlags)value; // Generate ", " seperated list of flagged values. string libraryString = System.Enum.Format(typeof(TlsVersionFlags), value, "g"); // Replace ", " seperations by ":" seperations. libraryString = libraryString.Replace(", ", Seperator); // Replace enum string values by library string values. libraryString = libraryString.Replace(TlsVersionFlags.TLS_VERSION_TLSv1.ToString(), TLSv1); libraryString = libraryString.Replace(TlsVersionFlags.TLS_VERSION_SSLv3.ToString(), SSLv3); return(libraryString); } return(base.ConvertTo(context, culture, value, destinationType)); }
// Overrides the ConvertFrom method of TypeConverter. public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) { if (value is string) { // Convert from <"TLSv1">:<"SSLv3"> to TlsVersionFlags string enumString = (string)value; // Replace ":" seperations by "," seperations. enumString = enumString.Replace(Seperator, ","); // Replace library string values by enum string values. enumString = enumString.Replace(TLSv1, TlsVersionFlags.TLS_VERSION_TLSv1.ToString()); enumString = enumString.Replace(SSLv3, TlsVersionFlags.TLS_VERSION_SSLv3.ToString()); TlsVersionFlags tlsVersionFlags = (TlsVersionFlags)System.Enum.Parse(typeof(TlsVersionFlags), enumString); return(tlsVersionFlags); } return(base.ConvertFrom(context, culture, value)); }