gpt4 book ai didi

c# - 如何将简单的类序列化/反序列化为 XML 并返回

转载 作者:IT王子 更新时间:2023-10-29 04:23:02 24 4
gpt4 key购买 nike

有时我想在不设置数据库往返的情况下模拟我的类的存储数据。例如,假设我有以下类(class):

public class ShoppingCart
{
public List<CartItem> Items {get; set;}
public int UserID { get; set; }
}

public class CartItem
{
public int SkuID { get; set; }
public int Quantity { get; set; }
public double ExtendedCost { get; set; }
}

假设我在内存中构建了一个 ShoppingCart 对象,并希望将其“保存”为 XML 文档。这可以通过某种 XDocument.CreateFromPOCO(shoppingCart) 方法实现吗?从另一个方向如何:是否有一种内置方法可以从 XML 文档(如 new ShoppingCart(xDoc))创建 ShoppingCart 对象?

最佳答案

XmlSerializer是一种方法。 DataContractSerializer是另一个。 XmlSerializer 示例:

using System.Xml;
using System.Xml.Serialization;

//...

ShoppingCart shoppingCart = FetchShoppingCartFromSomewhere();
var serializer = new XmlSerializer(shoppingCart.GetType());
using (var writer = XmlWriter.Create("shoppingcart.xml"))
{
serializer.Serialize(writer, shoppingCart);
}

并将其反序列化:

var serializer = new XmlSerializer(typeof(ShoppingCart));
using (var reader = XmlReader.Create("shoppingcart.xml"))
{
var shoppingCart = (ShoppingCart)serializer.Deserialize(reader);
}

另外,为了更好的封装,我建议您在 CartItem 类中使用属​​性而不是字段。

关于c# - 如何将简单的类序列化/反序列化为 XML 并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3356976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com