none
WPF序列化,未能注册命名对象。不能在此范围中注册重复的名称,如何解决? RRS feed

  • 问题

  •  

    再序列化一个自己定义的UserControl。

    private Object DeepClone(Object obj)
            {
                string shapestring = XamlWriter.Save(obj);
                StringReader stringReader = new StringReader(shapestring);
                XmlTextReader xmlTextReader = new XmlTextReader(stringReader);
                object DeepCopyobject = XamlReader.Load(xmlTextReader);
                return DeepCopyobject;
            }

    2018年5月25日 9:22

全部回复

  • 你好,

    根据的你的描述和一些,我不清楚问题出在,你可以详细的描述一下吗? 比如怎样重现你的问题, 代码的哪一行出现这个错误,你的入参是什么?

    Best regards,

    Zhanglong


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年5月28日 3:24
  • 可否跑一下这个例子

    https://blog.csdn.net/lee353086/article/details/8000736

    三种方法载入序列化的控件

    1. //从字符串中加载  
    2.         public void LoadEmbeddedXaml()   
    3.         {   
    4.             Title = "Load Embedded Xaml";  
    5.             string strXaml = "<Button xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'" +   
    6.                 " Foreground='LightSeaGreen' FontSize='16pt' Width='128' Height='32'>" +   
    7.                 " From String Object!</Button>";   
    8.             StringReader strreader = new  StringReader(strXaml);   
    9.             XmlTextReader xmlreader = new  XmlTextReader(strreader);  
    10.             object obj = XamlReader.Load(xmlreader);  
    11.             grid1.Children.Add((UIElement)obj);  
    12.         }  
    13.   
    14.         //从外部文件中加载 Button控件  
    15.         public void LoadEmbeddedXaml2()  
    16.         {  
    17.             XmlTextReader xmlreader = new XmlTextReader("d:\\a.xaml");  
    18.             UIElement obj = XamlReader.Load(xmlreader) as UIElement;  
    19.             grid1.Children.Add((UIElement)obj);  
    20.         }  
    21.   
    22.         //从资源文件中加载  
    23.         public void LoadEmbeddedXaml3()  
    24.         {  
    25.             //Build Action = Resource,Do not Copy,无相应cs文件  
    26.             Uri uri = new Uri("/LoadXamlResource.xaml",UriKind.Relative);  
    27.             Stream stream =Application.GetResourceStream(uri).Stream;  
    28.             //FrameworkElement继承自UIElement  
    29.             FrameworkElement obj =XamlReader.Load(stream) as FrameworkElement;  
    30.             grid1.Children.Add(obj);  
    31.         }  


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2018年5月29日 0:25