using System; using System.ComponentModel; using System.Drawing; using System.Drawing.Imaging; using System.IO; namespace Dongke.IBOSS.Basics.FlowSetting { /// /// 类型转换器(流程保存、读取时用) /// internal static class Converter { #region 常量 ///// ///// 属性分割符 ///// //private const string LIST_SEPARATOR_STRING = ","; ///// ///// 属性分割符 ///// //private const char LISTS_EPARATOR_CHAR = ','; ///// ///// XML中特殊字符处理 ///// //private const string XML_STRING = ""; #endregion 常量 #region 成员变量 #endregion 成员变量 #region String ///// ///// 包含特殊字符处理 ///// ///// ///// //public static string ToXMLString(string value) //{ // return string.Format(XML_STRING, value); //} #endregion String #region Object /// /// String 转换为 Object /// /// /// public static T ToObject(string value) { TypeConverter typeConverter = TypeDescriptor.GetConverter(typeof(T)); return (T)typeConverter.ConvertFromString(value); } /// /// Object 转换为 String /// /// /// public static string ToXMLString(T value) { if (value == null) { return null; } //if (typeof(T).Name == typeof(Image).Name) //{ // return ToXMLString(value); //} TypeConverter typeConverter = TypeDescriptor.GetConverter(typeof(T)); return typeConverter.ConvertToString(value); } #endregion Object #region Image /// /// String 转换为 Image /// /// /// public static Image ToImage(string value) { try { if (string.IsNullOrWhiteSpace(value)) { return null; } using (MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(value))) { return Image.FromStream(memoryStream, true); } } catch { return null; } } /// /// Image 转换为 String /// /// /// public static string ToXMLString(Image image) { try { if (image == null) { return null; } using (MemoryStream memoryStream = new MemoryStream()) { image.Save(memoryStream, ImageFormat.Bmp); return Convert.ToBase64String(memoryStream.ToArray()); } } catch { return null; } } #endregion Image } }