循环T模型属性。建立搜索
问题描述:
我即将在网站上建立一个搜索页面,搜索将扩展到几个模型,并且每个模型都有很多属性。循环T模型属性。建立搜索
有没有办法以通用的方式做到这一点或使用反射器,因为我在一些帖子中看到?我需要一些关于如何解决这个问题的提示或提示。高度欣赏它。
答
您可以使用反射来获取所需的信息。如果您有类型T,则可以使用
typeof(T).GetProperties()
获取所有公共属性。如果您需要更多的元数据来生成搜索,您可以使用属性来注释属性(或字段,方法等)。这就是我开始的方式。更多细节取决于你的确切用例。
答
你能提供更多细节吗?
您搜索的目的是什么?给我30秒的版本,这样我就能明白你要去哪里了。
你打算使用正则表达式和词干?
什么样的数值被视为匹配?
我假设你只想搜索对象/模型的属性。对?
是否想查看每个属性或仅查看其中的一些?
什么类型的数据存储在属性中? (字符串,字节[],枚举等)
头脑风暴:
关于搜索一个数据库服务器端,而不是在你的水合对象什么?使用数据库的速度可能会更快(在运行时),而不是将所有对象加载到内存中,然后反思它们。
您也可以在模型本身的上下文中编写一个支持搜索的方法。您将搜索规则集作为表达式传递,然后查找匹配项。如果您有某种集合容器,则可以在该级别上针对集合中的所有对象运行搜索。
如果你想要一些反射代码,我写了一些东西,通过反射显示了很多关于对象的信息。我很久以前写过(2009年12月)。我不确定它是否做到了你想要的。看一看。如果它适合你,请使用它! (Link)