克隆引用类型
考虑以下
我有一个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