克隆引用类型

考虑以下

我有一个Html模板对象

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

和一个Html编辑器

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

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

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

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

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