using System.IO; namespace jive { public interface IPrototype { T clone(T item); } public class Prototype : IPrototype { public T clone(T item) { using (var serializer = new BinarySerializer(Path.GetTempFileName())) { serializer.serialize(item); return serializer.deserialize(); } } } }