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
}
}