关于c#:克隆引用类型


Cloning a reference type

本问题已经有最佳答案,请猛点这里访问。

考虑以下内容

我有一个HTML模板对象

1
2
3
4
5
   class HtmlTemplateModel
    {
       public HTML Html {get;set;}
       //..etc
    }

和HTML编辑器

1
2
3
4
5
6
7
8
class HtmlEditorViewModel
{
   private HtmlTemplateModel htmlTemplateModel;
   public HtmlEditor(HtmlTemplateModel htmlTemplateModel)
   {
      this.htmlTemplateModel = htmlTemplateModel;
   }
}

这样,templateditor实例将原始模板的更改应用于其引用类型,但我不想修改其值,因此我创建了一个新的构造函数,该构造函数接受HtmlTemplateModel,并创建了一个新的HtmlTemplateModel

  • 这是在.NET中克隆引用类型的最佳方法吗?
  • 有没有捷径可以让我不用再创建一个克隆对象的构造函数?

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

http://www.codeproject.com/articles/23832/implementation-deep-cloning-via-serializing-objects