将 XML 文档反序列化为通讯簿



在这一点上,我已经搜索了多个示例,所有这些示例都详细介绍了反序列化,序列化甚至其他随机不相关的过程的不同方法,我可能应该忽略这些过程,但出于绝望,我还是继续阅读。

我想反序列化此 XML 文档:

<?xml version="1.0" encoding="UTF-8"?>
<AddressBook>
<Contact>
<Name>Steve Man</Name>
<ContactType>Family</ContactType>
<DateofBirth>1992-07-10T00:00:00</DateofBirth>
<AddressLine1>123 Fake Street</AddressLine1>
<AddressLine2>New Worthington</AddressLine2>
<AddressLine3>Regalpark</AddressLine3>
<AddressLine4 />
<Postcode>RP3 6BG</Postcode>
<Email1>Steve@gmail.com</Email1>
<Email2>Steve@tiscali.co.uk</Email2>
<Phone>01422951283</Phone>
<Mobile>07559213822/Mobile>
<AdditionalInfo>This is that weird guy.</AdditionalInfo>
</Contact>

在 C# 窗口窗体应用程序中放入上述地址簿对象,其内容将来自 XML 文档中的数据。

在被反序列化后(或者我被告知),我可以直接将它从此过程生成的对象与应用程序本身一起使用,这意味着我可以根据需要显示/编辑/删除它们。

然后,在进行编辑后,需要将新数据序列化回原始 XML 格式以进行存储。

如果这是一个愚蠢/重复的问题,我深表歉意,但我对 C# 很陌生,并且已经阅读了很长时间并挣扎,非常感谢您能提供的任何输入,如果问题需要任何调整或您需要更多信息,那么我很乐意提供它。

首先,我想指出这个页面。 http://azuliadesigns.com/xml-serialization-deserialization/

应使用此代码序列化联系人对象列表。 我相信下面的代码应该可以为您解决问题

XmlSerializer mySerializer = new XmlSerializer(typeof(List<Contact>));
StreamWriter myWriter = new StreamWriter("c:/addressbook.xml");
mySerializer.Serialize(myWriter, test);
myWriter.Close();

并反序列化

List<Contact> test;
XmlSerializer mySerializer = new XmlSerializer(typeof(List<Contact>));
FileStream myFileStream = new FileStream("c:/addressbook.xml",FileMode.Open);
test = (List<Contact>)mySerializer.Deserialize(myFileStream);

我没有更改变量名称以使其尽可能清晰。我使用此方法序列化和反序列化我的设置对象。

您的联系人类应如下所示

[Serializable]
public class Contact
{
public string Name "";
}

最新更新