我知道我可以使用 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/