【发布时间】:2015-06-13 10:27:27
【问题描述】:
在为反序列化加载适当的 XML 时,建议我为自动生成 DTO 元素提供适当的解决方案。
这是我的 DTO
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
namespace GHelper.DTO
{
public class ElementsDTO
{
[XmlRoot("GalLC")]
public class FareBB
{
[xmlElement("Ip")]
public string strIp { get; set; }
[xmlElement("Port")]
public int intPort { get; set; }
[xmlElement("Type")]
public int intPort{ get; set; }
[xmlElement("Email")]
public string strEmail{ get; set; }
}
}
}
这是我的 XML
<GalLC>
<Ip>192.168.2.100</Ip>
<Port>5051</Port>
<Type></Type>
<Email></Email>
</GalLC>
问题是:当我得到一个冗长的 XML 时,我会花费大量时间来为它创建一个 DTO。 请给我一些关于自动创建 DTO 的建议。
【问题讨论】:
-
您有 XML 架构 (XSD) 吗?有一些工具可以从这些生成类定义。没有它,任何工具都会猜测数据类型和结构是什么。
-
我可能会得到不同的 XML。所以结构也会发生变化吧?。
-
我希望你明白我正在尝试对对象进行反序列化。
-
您是否从 XML 中提取每个元素?除了使用序列化之外,还有很多解析 XML 的方法。编写解析代码的时间和编写序列化代码的时间大致相等。
-
@SusajSNair 是的。但是您不能从示例文件中生成类/对象——您需要一个 XML 模式。它怎么知道只允许一个IP?它怎么知道
Port是一个整数?