參考this回答一個問題。BinaryFormatter序列化和反序列化線程安全嗎?
是否可以將其改寫爲:
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);
}
}
所以避免了構建(及GC'ing)爲每個調用一個新的BinaryFormatter?
此代碼路徑非常頻繁地被擊中,因爲它涉及到我們的緩存層,我希望儘可能輕量化。
謝謝。
不可變的經典論據;) – 2009-09-21 13:36:48