gpt4 book ai didi

.net 将 xml 反序列化为多个已知对象之一

转载 作者:数据小太阳 更新时间:2023-10-29 02:14:08 25 4
gpt4 key购买 nike

尝试使用“.net 反序列化 xml 一种许多已知对象类型”的各种组合进行搜索...但没有找到任何有意义的东西,我现在就在这里。

我收到了可能发送给我的 5 个不相关对象中的 1 个(每个对象的架构不同),我需要将该 xml 反序列化为正确的对象。当然,对象的数量/类型会增长 ;-)有没有办法让反序列化器将 xml 内容与对象匹配,也许是反射(只是猜测)?除了 xml 内容本身,我没有在序列化对象周围得到任何外部 xml 包装器来告诉我它是什么。这些是来自不同系统的消息,通知我事件、状态更改、新订单......

此时我正在考虑蛮力,xml 阅读器寻找唯一匹配我的已知项目之一的标识属性,然后从那里切换到使用适当类型的反序列化。这似乎不太优雅。

任何指导表示赞赏,G

最佳答案

使用以下内容:

Stream xml; // Contains the XML to deserialize
XmlSerializer xmlSerializer = new XmlSerializer(
typeof(MyClass1),
new []{ typeof(MyClass2), typeof(MyClass3) }); // Add additional classes here
object obj = xmlSerializer.Deserialize(xml);

if(obj Is MyClass1)
{
// Do something
}
else if (obj is MyClass2)
{
// Do something
}
else if (obj is MyClass3)
{
// Do something
}
// And so on for other classes

关于.net 将 xml 反序列化为多个已知对象之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12291801/

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