Referencing this answer to a question.

Can this be rewritten as:

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

So avoiding constructing (and GC'ing) a new BinaryFormatter for each call?

This code path is getting hit very frequently as it involves our caching layer and I would like to make it as lightweight as possible.

Thanks.

Edit
Report