循环遍历T模型属性.构建搜索

本文关键字:构建 搜索 属性 模型 遍历 循环 | 更新日期: 2023-09-27 17:54:10

我要在一个网站上建立一个搜索页面,搜索将是广泛的,有几个模型,每个模型都有很多属性。

是否有一种方法来做到这一点,以一种通用的方式或使用反射器,因为我在一些帖子中看到?我需要一些关于如何处理这个问题的指示或提示。非常感谢。

循环遍历T模型属性.构建搜索

您可以使用反射来获取所需的信息。如果你有一个类型T,你可以使用

typeof(T).GetProperties()

获取所有公共属性。对于字段,方法,…也是可能的。如果需要更多元数据来生成搜索,可以使用属性来注释属性(或字段、方法等)。我就是这样开始的。

你能提供更多细节吗?

你搜索的目的是什么?给我30秒的版本,这样我就能明白你要做什么了。

你打算使用RegEx和词干提取吗?

什么类型的值算匹配?

我假设你只想搜索对象/模型上的属性。对吧?

想要查看所有属性还是只查看其中的一些?

属性中存储了哪些类型的数据?(string, byte[], enum等)

头脑风暴的想法:

如何搜索一个DB服务器端,而不是在您的水合对象?(在运行时)利用DB可能比将所有对象加载到内存中然后对它们进行反射更快。

您还可以编写一个方法来支持在模型本身的上下文中进行搜索。将搜索规则集作为表达式传入,然后找到匹配项。如果您有某种类型的集合容器,则可以针对集合中的所有对象在该级别上运行搜索。

如果你想要一些反射代码,我写了一些东西,通过反射显示了很多关于对象的信息。我很久以前(2009年12月)写过这篇文章。我不确定这是不是你想要的。看一看。如果它对你有用,那就使用它!(链接)