我正在玩我最喜欢的东西,xml(有礼貌地请你杀了我),最终的目标是将它保存在内部并以不同的方式使用数据(这是从另一个系统导出).我有goo有效,但是,我觉得它可以好多了.
public Position(XElement element)
{
Id = element.GetElementByName("id");
Title = element.GetElementByName("title");
}
Run Code Online (Sandbox Code Playgroud)
我正在考虑通过为它所代表的xml元素添加数据注释来使其更加自动化(hacky).比如这样的东西.
[XmlElement("id")]
public string Id { get; set; }
[XmlElement("title")]
public string Title { get; set; }
Run Code Online (Sandbox Code Playgroud)
然后写一些反射/映射器代码,但两种方式都感觉......很脏.我应该关心吗?有没有更好的办法?也许反序列化是正确的方法?我只是觉得有一种方法可以做到这一点.
Wal*_*eza 13
您可以使用XmlSerializer类和使用属性标记类属性来控制对象的序列化和反序列化.
这是一个简单的方法,您可以使用它来反序列化您XDocument的对象:
public static T DeserializeXml<T>(XDocument document)
{
using (var reader = document.CreateReader())
{
var serializer = new XmlSerializer(typeof (T));
return (T) serializer.Deserialize(reader);
}
}
Run Code Online (Sandbox Code Playgroud)
和一个简单的序列化方法:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
293 次 |
| 最近记录: |