Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Silverlight中反序列化一个复杂的业务XML对象来管理它们_C#_Silverlight_Serialization_Xml Serialization_Deserialization - Fatal编程技术网

C# 在Silverlight中反序列化一个复杂的业务XML对象来管理它们

C# 在Silverlight中反序列化一个复杂的业务XML对象来管理它们,c#,silverlight,serialization,xml-serialization,deserialization,C#,Silverlight,Serialization,Xml Serialization,Deserialization,我现在正在搜索一些教程和帖子,介绍如何将复杂的XML文档反序列化为对象,并在silverlight应用程序中使用它。我看过很多2008年、2009年的教程和帖子,其中很多显然不起作用。。与Hello World或类用户一起工作有点容易,但我找不到关于一些复杂xml文件和数据上的objectaction的任何好东西。3行parsingcode不是问题所在,但是c代码看起来像什么?如何创建所有这些类?如何处理这些对象 让我们假设您从Web服务获得一个流,或者您的逻辑中有一个字符串,如下所示。您有名称

我现在正在搜索一些教程和帖子,介绍如何将复杂的XML文档反序列化为对象,并在silverlight应用程序中使用它。我看过很多2008年、2009年的教程和帖子,其中很多显然不起作用。。与Hello World或类用户一起工作有点容易,但我找不到关于一些复杂xml文件和数据上的objectaction的任何好东西。3行parsingcode不是问题所在,但是c代码看起来像什么?如何创建所有这些类?如何处理这些对象

让我们假设您从Web服务获得一个流,或者您的逻辑中有一个字符串,如下所示。您有名称空间、属性和6个子节点

<?xml version="1.0" encoding="UTF-8"?>
<om:root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:om="http://www.opengis.net/om/1.0">
<a name="a1">
<b>
    <c id="1" name="C1">
        <d id="1" name="D1">My name is D1</d>
        <d id="2" name ="D2">My name is D2</d>
        <e>
            <f>this is f1</f>
        </e>
    </c>
    <c id="2" name="C2">
        <d id="3" name="D3">My name is D3</d>
        <e>
            <f>this is f2</f>
        </e>
    </c>
</b>
<b>
    <c id="3" name="C3">
        <d id="4" name="D5">My name is D4</d>
        <d id="5" name="D5">My name is D5</d>
        <d id="6" name="D6">My name is D6</d>
        <d id="7" name="D7">My name is D7</d>
        <e>
            <f>this is f3</f>
        </e>
    </c>
</b>
</a>
</om:root>
1是否有任何网站可以创建类和c代码,以便能够在xml中工作/存储数据?发布xml文件并获取c类的源代码。比如www.json2csharp.com

2我的类、属性等看起来如何?我想看看一个标准的现代最先进的方式如何处理属性,属性,列表等完整的代码与使用xxx!请让我们使用将与Silverlight一起工作的标准序列化程序类

3一些物体动作。像

给我列表中的所有名称:c 给我一个f的值,在nom:cid=2中 把所有的b都列在一个单子里 给我所有测试:d节点中name=的所有AtributeValue 只是一些严重的实际问题,而不是那些简单的get.me.person.name或book.name


编辑:好吧,也许这太难了。任何人都可以发布一些链接,其中至少有一种教程或带有一些示例的博客吗?

要从xml生成c类,可以使用Microsoft工具。

我自己是乞丐,但如果我是你,我肯定会研究System.xml.Linq类。当您已经了解了您的类时,反序列化文档应该非常简单。在下面,我粘贴了一段代码,它完全符合您的要求。它适用于WP7,但除了隔离存储部分外,一切都应该是一样的

ItemTemplate item = new ItemTemplate();
        using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            using (IsolatedStorageFileStream stream = myIsolatedStorage.OpenFile("/Items.xml", FileMode.Open))
            {
                XElement doc = XElement.Load(stream);
                IEnumerable<XElement> itemTest = from el in doc.Elements("item")
                                                 where (string)el.Element("id") == itemId
                                                 select el;
                foreach (XElement el in itemTest)
                {
                    item.ItemContent = el.Element("content").Value;
                    item.Status = Convert.ToBoolean(el.Element("status").Value);
                    item.Notes = el.Element("notes").Value;
                    item.Location = el.Element("location").Value;
                    item.Deadline = Convert.ToDateTime(el.Element("deadline").Value);
                }                  
            }
        }

我已经用过了,但我不是那么开心。一些在线解决方案将是伟大的。嗨,thx为您的代码,但我不想在这里使用LINQ。只是类和反序列化。这是困难的还是不是常见的问题??