Tham khảo this trả lời cho một câu hỏi.BinaryFormatter Serialize và Deserialize thread có an toàn không?
này có thể được viết lại như sau:
private static BinaryFormatter formatter = new BinaryFormatter();
public static T DeepClone<T>(this T a)
{
using(MemoryStream stream = new MemoryStream())
{
formatter.Serialize(stream, a);
stream.Position = 0;
return (T)formatter.Deserialize(stream);
}
}
Vì vậy, tránh xây dựng (và GC'ing) một BinaryFormatter mới cho mỗi cuộc gọi?
Đường dẫn mã này đang được truy cập rất thường xuyên vì nó liên quan đến lớp bộ nhớ đệm của chúng tôi và tôi muốn làm cho nó nhẹ nhất có thể.
Cảm ơn.
Một đối số cổ điển cho bất biến;) –