循环遍历T模型属性.构建搜索
本文关键字:构建 搜索 属性 模型 遍历 循环 | 更新日期: 2023-09-27 17:54:10
我要在一个网站上建立一个搜索页面,搜索将是广泛的,有几个模型,每个模型都有很多属性。
是否有一种方法来做到这一点,以一种通用的方式或使用反射器,因为我在一些帖子中看到?我需要一些关于如何处理这个问题的指示或提示。非常感谢。
您可以使用反射来获取所需的信息。如果你有一个类型T,你可以使用
typeof(T).GetProperties()
获取所有公共属性。对于字段,方法,…也是可能的。如果需要更多元数据来生成搜索,可以使用属性来注释属性(或字段、方法等)。我就是这样开始的。
你能提供更多细节吗?
你搜索的目的是什么?给我30秒的版本,这样我就能明白你要做什么了。
你打算使用RegEx和词干提取吗?
什么类型的值算匹配?
我假设你只想搜索对象/模型上的属性。对吧?
想要查看所有属性还是只查看其中的一些?
属性中存储了哪些类型的数据?(string, byte[], enum等)
头脑风暴的想法:
如何搜索一个DB服务器端,而不是在您的水合对象?(在运行时)利用DB可能比将所有对象加载到内存中然后对它们进行反射更快。
您还可以编写一个方法来支持在模型本身的上下文中进行搜索。将搜索规则集作为表达式传入,然后找到匹配项。如果您有某种类型的集合容器,则可以针对集合中的所有对象在该级别上运行搜索。
如果你想要一些反射代码,我写了一些东西,通过反射显示了很多关于对象的信息。我很久以前(2009年12月)写过这篇文章。我不确定这是不是你想要的。看一看。如果它对你有用,那就使用它!(链接)