克隆引用类型

时间:2013-12-20 07:22:51

标签: c#

考虑以下

我有一个Html模板对象

   class HtmlTemplateModel
    {
       public HTML Html {get;set;}
       //..etc
    }

和Html编辑器

class HtmlEditorViewModel
{
   private HtmlTemplateModel htmlTemplateModel;
   public HtmlEditor(HtmlTemplateModel htmlTemplateModel)
   {
      this.htmlTemplateModel = htmlTemplateModel;
   }
}

这样,TemplateEditor实例将更改应用于原始模板,因为它是一个引用类型,但我不想修改它的值,所以我创建了一个新的构造函数,它接受HtmlTemplateModel并创建一个新的{{1 }}

  • 这是克隆.NET中引用类型的最佳方法吗?
  • 并且有一个快捷方式,所以我不必创建另一个 用于克隆对象的构造函数?

1 个答案:

答案 0 :(得分:2)

一种简单的方法是序列化对象,它将对源对象进行深层复制。

http://www.codeproject.com/Articles/23832/Implementing-Deep-Cloning-via-Serializing-objects