Deepcopy视口(非可序列化类)

时间:2016-01-30 18:32:06

标签: c# serialization viewport deep-copy

首先我是c#的初学者。我想对viewport类进行深度复制,所以我尝试以这种方式复制项目(如本文所述:here):

 public static T Clone<T>(T source)
    {

        if (!typeof(T).IsSerializable)
        {
            throw new ArgumentException("The type must be serializable.", "source");
        }

        // Don't serialize a null object, simply return the default for that object
        if (Object.ReferenceEquals(source, null))
        {
            return default(T);
        }

        IFormatter formatter = new BinaryFormatter();
        Stream stream = new MemoryStream();
        using (stream)
        {
            formatter.Serialize(stream, source);
            stream.Seek(0, SeekOrigin.Begin);
            return (T)formatter.Deserialize(stream);
        }
    }

但是类不是可序列化的,我不拥有它。所以我正在考虑在viewport类上添加一个扩展,以便添加一个可以将变量内容复制到新实例的方法,但我不确定这是好方法。

您有建议或其他解决方案吗?

感谢。

0 个答案:

没有答案