使用一些代码来克隆对象,但我还需要代码来调用构造函数,但它没有

本文关键字:代码 调用 构造函数 对象 | 更新日期: 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
}