using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Threading.Tasks; namespace DBCHM { public static class CommonExtension { public static string FormatString(this string s, params object[] args) { return string.Format(s, args); } public static void SetHidden(this FileInfo file) { if (file != null && file.Exists) { file.Attributes = FileAttributes.Hidden; } } /// /// 深度复制 /// /// /// /// public static T DeepCopy(this T source) { if (source == null) { return default(T); } using (Stream objectStream = new MemoryStream()) { //利用 System.Runtime.Serialization序列化与反序列化完成引用对象的复制 IFormatter formatter = new BinaryFormatter(); formatter.Serialize(objectStream, source); objectStream.Seek(0, SeekOrigin.Begin); return (T)formatter.Deserialize(objectStream); } } } }