1 /// <summary>
2 /// 对象深拷贝
3 /// </summary>
4 /// <typeparam name="T"></typeparam>
5 /// <param name="obj"></param>
6 /// <returns></returns>
7 public static T DeepCopyByBin<T>(this T obj)
8 {
9 object retval;
10 using (MemoryStream ms = new MemoryStream())
11 {
12 BinaryFormatter bf = new BinaryFormatter();
13 //序列化成流
14 bf.Serialize(ms, obj);
15 ms.Seek(0, SeekOrigin.Begin);
16 //反序列化成对象
17 retval = bf.Deserialize(ms);
18 ms.Close();
19 }
20 return (T)retval;
21 }
/// <summary>
/// 包含中文
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool ContainsChinese(this string input)
{
if (string.IsNullOrEmpty(input))
return false;
return Regex.IsMatch(input, "[\u4e00-\u9fa5]");
}
//获取描述特性
public static string ToDescription(Enum en)
{
try
{
Type type = en.GetType(); //获取类型
MemberInfo[] memberInfos = type.GetMember(en.ToString()); //获取成员
if (memberInfos != null && memberInfos.Length > 0)
{
DescriptionAttribute[] attrs = memberInfos[0].GetCustomAttributes(typeof(DescriptionAttribute), false) as DescriptionAttribute[]; //获取描述特性
if (attrs != null && attrs.Length > 0)
{
return attrs[0].Description; //返回当前描述
}
}
return en.ToString();
}
catch
{
return "Error Description";
}
}