using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.ComponentModel; namespace CertificateReport.Utility { /// <summary> /// Represents some utility function for type converter /// </summary> public class GenericConverter { /* //Usage DateTime datetime = GenericConverter.Parse<DateTime>("12.10.2007"); IFormatProvider providerEN = new System.Globalization.CultureInfo("en-US", true); IFormatProvider providerTR = new System.Globalization.CultureInfo("tr-TR", true); DateTime x = GenericConverter.Parse<DateTime>("12.10.2007", providerTR); // ddMMyyyy DateTime y = GenericConverter.Parse<DateTime>("12.10.2007", providerEN); // MMddyyyy int iValue = GenericConverter.Parse<int>("12"); * * */ public static T Parse<T>(string sourceValue) where T : IConvertible { try { return (T)Convert.ChangeType(sourceValue, typeof(T)); } catch { return default(T); } } public static T Parse<T>(string sourceValue, IFormatProvider provider) where T : IConvertible { try { return (T)Convert.ChangeType(sourceValue, typeof(T), provider); } catch { return default(T); } } public static T ConvertFromString<T>(string description) { T t = default(T); TypeConverter tc = TypeDescriptor.GetConverter(typeof(T)); if (tc != null) { try { t = (T)tc.ConvertFromString(description); } catch { } } return t; } public static string ConvertToString<T> (T t) { string retval = string.Empty; TypeConverter tc = TypeDescriptor.GetConverter(typeof(T)); return tc.ConvertToString(t) ; } } }