使用一些代码来克隆对象,但我还需要代码来调用构造函数,但它没有
本文关键字:代码 调用 构造函数 对象 | 更新日期: 2023-09-27 18:30:38
我一直在搞砸以下代码(从 http://naspinski.net/post/Cloning-an-Entity-in-Linq-to-Entities.aspx):
public static T Clone<T>(this T source)
{
var dcs = new System.Runtime.Serialization.DataContractSerializer(typeof(T));
using(var ms = new System.IO.MemoryStream())
{
dcs.WriteObject(ms, source);
ms.Seek(0, System.IO.SeekOrigin.Begin);
return (T)dcs.ReadObject(ms);
}
}
这很好用。除了它不调用构造函数。 基本上,我有一个构造函数,它不接收我希望上面的代码调用的参数。 有没有办法以某种方式调用该构造函数?
试试这个,你可以实现OnDeserializing
来做你的初始化,这是你的选择之一:
[OnDeserializing]
void OnDeserializing(StreamingContext c)
{
//create what is required here
}