gpt4 book ai didi

c# - 这也太……hacky了吧? XML 到一个对象

转载 作者:数据小太阳 更新时间:2023-10-29 01:59:56 26 4
gpt4 key购买 nike

我正在玩我最喜欢的东西,xml(请礼貌地杀了我),最终目标是在内部保存它并以不同的方式使用数据(这是从另一个系统导出的)。我有很好用的东西,但是嗯,我认为它可以好得多。

    public Position(XElement element)
{
Id = element.GetElementByName("id");
Title = element.GetElementByName("title");
}

我正在考虑通过为其表示的 xml 元素添加数据注释来使其更加自动化(hacky)。例如这样的事情。

    [XmlElement("id")]
public string Id { get; set; }

[XmlElement("title")]
public string Title { get; set; }

然后编写一些反射/映射器代码,但两种方式都感觉……很脏。我应该关心吗?有没有更好的办法?也许反序列化是正确的方法?我只是觉得有一种方法可以做到这一点。

最佳答案

您可以使用 XmlSerializer使用 attributes 对您的类属性进行分类和标记控制对象的序列化和反序列化。

这里有一个简单的方法,可用于将 XDocument 反序列化为对象:

public static T DeserializeXml<T>(XDocument document)
{
using (var reader = document.CreateReader())
{
var serializer = new XmlSerializer(typeof (T));
return (T) serializer.Deserialize(reader);
}
}

和一个简单的序列化器方法:

public static String ToXml<T>(T instance)
{
using (var output = new StringWriter(new StringBuilder()))
{
var serializer = new XmlSerializer(typeof(T));
serializer.Serialize(output, instance);

return output.ToString();
}
}

关于c# - 这也太……hacky了吧? XML 到一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3396783/

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