【发布时间】:2014-04-22 11:39:33
【问题描述】:
我的想法是将类的属性序列化为 XML 文件,然后将该文件上传到服务器。这是因为我想再次下载这个文件并读出序列化的内容。
这样的结构:
文件存在 (myfile.xml) -> 将数据从类 (myclass.cs) 序列化到文件 -> 上传文件。
现在内容可能如下所示:
<?xml version="1.0"?>
-<MyClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SomeProperty>0.1.0.0</SomeProperty>
<SomePropertiesChild>Test</SomePropertiesChild>
</MyClass>
好吧,所以这不是问题,我已经建立了一个类来将数据序列化到文件中,所以它看起来像上面那样。
现在的问题是,我不知道该怎么做。我希望下一次新数据将像那样序列化,但它应该附加到那个 XML 文件,而不是新的。 所以我下载了这个文件,然后将新数据序列化为它的附件,这样它就会如下所示:
<?xml version="1.0"?>
-<MyClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SomeProperty>0.1.0.0</SomeProperty>
<SomePropertiesChild>Test</SomePropertiesChild>
<!-- This is the part that should be attached -->
<SomeProperty>0.2.0.0</SomeProperty>
<SomePropertiesChild>Test2</SomePropertiesChild>
</MyClass>
这应该重复多次:下载文件,序列化新数据并将其附加到此文件,然后再次上传。 现在,第二点是,我想把它读出来。
为此,我也使用 XML 类。对于数据应该序列化到的类型的类型参数,我设置了包含属性的类。 但是现在,我的 XML 中有更多同名的节点,就像上面一样。我现在想把它分开。 因此,不仅是一个类,而且对于每个具有相同名称的节点都有一个新类。
为了让你更清楚一点:
在 XML 中,我们有第一对 (SomeProperty, SomePropertiesChild)。 现在应该将这个反序列化为 myclass.cs,其中包含 XML 节点的正确属性。示例:
public class MyClass
{
public Version SomeProperty {get; set;}
public string SomeProeprtiesChild {get; set;}
}
然后应该将第一个 XML 对反序列化为该类。 但是我想为我的 XML 文件中的每个 XML“对”执行此操作,但我无法在脑海中获得正确的结构。 我应该在这里列出清单还是应该怎么做? 我真的希望我能解释清楚一点,这很难解释。 我也不知道如何通过附加来做到这一点。有什么建议吗?
如果您有任何问题,请提问!
【问题讨论】:
-
漂亮的问题标题:)
-
我想了 5 分钟还是不知道 :) 如果我想出它,我会建议编辑。
标签: c# xml serialization