C# - 使用 XML 混合现有对象

标签 c# xml

我知道我可以使用 Linq 将字段从 XML 映射到预先存在的对象中的字段。 .NET Framework(或其他库)中是否有任何功能可以减少手动操作。

我想写(并且让 HydrateFromXml 的行为有点像 AutoMapper):

var myObject = new MyObject(/*ctor args*/);

myObject = myObject.HydrateFromXml(string xml);

编辑:

我可以在这里使用装饰器模式或简单的包装器对象吗?直接反序列化为由允许我需要的细粒度构造控制的抽象包装的类型?

最佳答案

您可以使用 XmlSerializer这样做:

var serializer = new XmlSerializer(typeof(MyObject));

object result;
using (TextReader reader = new StringReader(xml))
{
    result= serializer.Deserialize(reader);
}

var myObject = result as MyObject;

对于对象实例已经存在的情况,请检查这个问题:Deserializing properties into a pre-existing object

关于C# - 使用 XML 混合现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15434319/

相关文章:

c# - 如何使多个 API 调用更快?

c# - 如何检查 wp7 XNA 触摸事件是否在定义的矩形内

c# - 列表集索引c#

javascript - NodeJS parseStream,定义一个 block 的起点和终点

c# - 在C#中处理 “loop initialization”的其他方式

android - 从 android 上的操作栏中删除图标/ Logo

php - 在PHP中解析具有多个相同名称属性的XML文件中的数据

xml - 没有前缀的 XSD 无效

java - 如何动态更改ListView中项目的大小?

c# - <in From, out To> 是什么意思?