gpt4 book ai didi

c# - 检索数据 LINQ 与反射

转载 作者:太空狗 更新时间:2023-10-30 01:08:49 27 4
gpt4 key购买 nike

我希望有人能告诉我哪种检索数据的方法更有效和/或更正确。

我有一些来自第三方的 XML 文件及其附加的 DTD。所以我将 DTD 转换为 C# 类,以便我可以将 XML 反序列化为类。我现在需要映射该数据以匹配我的数据结构设置方式。

问题最终是;我应该使用反射还是 LINQ。 XML 的格式在设计上有些通用,其中内容保存在项目 [数组] 或项目 [对象] 中。

我做了以下事情:

TheirClass class = theirMessage.Items.Where(n=> n.GetType() == typeof(TheirClass)).First() as TheirClass;

MyObject.Param1 = ConversionHelperClass.Convert(class.Obj1);
MyObject.Param2 = ConversionHelperClass.Convert(class.Obj2);

我还可以用反射做一些事情,我在其中传递我试图阻止的类和属性的名称。

在这里尝试以正确的方式做事。

最佳答案

作为一般规则,除非绝对必要,否则我建议避免反射!它引入了性能开销并且意味着您会错过编译器团队辛勤工作为我们提供的所有可爱的编译时检查。

Linq to entities 本质上是针对内存中的数据集进行查询,因此速度非常快。

如果您的最终目标是解析 xml 文档中的信息,我建议您查看 XDocument class .它为查询 xml 文档提供了一个非常好的抽象。

关于c# - 检索数据 LINQ 与反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8344543/

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