Tag: clone

克隆没有序列化的对象

我在SO处找到了许多解决方案,而且是通过序列化/反序列化(进入内存和返回)处理对象的深层克隆。 它要求克隆的类用[Serializable]标记。 我碰巧把我的类(大部分都是)用[DataContract]标记,因为我使用DataContractSerializer来序列化为XML。 我只引入了[Serializable]属性,因为需要深度克隆其中一些类实例。 但是,现在通过DCS序列化/反序列化发生了一些事情,因为它不再起作用了 – 关于在反序列化时期望不同的XML元素的错误。 如果我删除[Serializable] ,错误就消失了。 我有什么选择? 我只想尽可能简单地深入克隆我的对象。

是否有一种简单/内置的方法来获取XAML元素的精确副本(克隆)?

我需要使XAML的区域可打印 ,因此制作此按钮处理程序: private void Button_Click_Print(object sender, RoutedEventArgs e) { Customer.PrintReport(PrintableArea); } 在PrintReport中,我将frameworkelement打包到其他元素中,以便以与屏幕上不同的方式打印它,如下所示: public void PrintReport(FrameworkElement fwe) { StackPanel sp = new StackPanel(); sp.Children.Add(fwe); TextBlock tb = new TextBlock(); tb.Text = “hello”; sp.Children.Add(tb); PrintDialog dialog = new PrintDialog(); if (dialog.ShowDialog() == true) { dialog.PrintVisual(sp, “Print job”); } } 但上面给出了以下错误 : 指定的元素已经是另一个元素的逻辑子元素。 首先断开它。 有没有一种简单的方法来克隆FrameworkElement,以便我可以操作副本,打印它,然后忘记它,让XAML中的原始元素显示在屏幕上完好无损? 我会想象这样的东西: FrameworkElement fwe2 […]

.Net深度克隆 – 最好的方法是什么?

我需要在我的复杂对象模型上执行深度克隆。 您认为在.Net中做到这一点的最佳方式是什么? 我想过序列化/反序列化 无需提及MemberwiseClone不够好。