实现深度克隆方法() [英] Implementing a deep clone method()

查看:72
本文介绍了实现深度克隆方法()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在我的图书馆信息系统中用.NET实现(深层)克隆方法。

为什么BinaryFormatter不被识别?

 使用 System.IO; 
使用 System.Runtime.Serialization.Formatters;
public static 审核DeepClone< T>(审计obj)
{
使用 var ms = new MemoryStream())
{
var formatter = new BinaryFormatter();
formatter.Serialize(ms,obj);
ms.Position = 0 ;

return (审核)formatter.Deserialize(ms);
}
}



我使用的是Visual Studio 2010 / .NET 4.5。



参考文献:

1.规格 http://www.scribd.com/doc/178540653/Software-Engineering-Project-IS3139-A-School-Library-v2?secret_password=127olku950mzko3glvep [ ^ ]

2.来自 http://stackoverflow.com/questions/129389/how-do-you-do-a-deep-copy-an-object-in-net-c-specifically [ ^ ]

3. http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.binary.binaryformatter(v = vs.110).aspx [ ^ ]

解决方案

二进制格式化程序文档页面 [ ^ ]具有以下行:

 使用 System.Runtime.Serializat ion.Formatters的二进制; 


I need to implement a (deep) cloning method in .NET within my library information system.
Why is BinaryFormatter not being recognized?

using System.IO;
using System.Runtime.Serialization.Formatters;
public static Audit DeepClone<T>(Audit obj)
   {
       using (var ms = new MemoryStream())
       {
           var formatter = new BinaryFormatter();
           formatter.Serialize(ms, obj);
           ms.Position = 0;

           return (Audit)formatter.Deserialize(ms);
       }
   }


I am using Visual Studio 2010/.NET 4.5.

References:
1. Spec at http://www.scribd.com/doc/178540653/Software-Engineering-Project-IS3139-A-School-Library-v2?secret_password=127olku950mzko3glvep[^]
2. Code snippet sourced from http://stackoverflow.com/questions/129389/how-do-you-do-a-deep-copy-an-object-in-net-c-specifically[^]
3. BinaryFormatter Class documentation at http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.binary.binaryformatter(v=vs.110).aspx[^]

解决方案

Sample code in the Binary Formatter documentation page[^] features the following line:

using System.Runtime.Serialization.Formatters.Binary;


这篇关于实现深度克隆方法()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆