2011-04-28 34 views
0

我即將在網站上建立一個搜索頁面,搜索將擴展到幾個模型,並且每個模型都有很多屬性。循環T模型屬性。建立搜索

有沒有辦法以通用的方式做到這一點或使用反射器,因爲我在一些帖子中看到?我需要一些關於如何解決這個問題的提示或提示。高度欣賞它。

回答

1

您可以使用反射來獲取所需的信息。如果您有類型T,則可以使用

typeof(T).GetProperties() 

獲取所有公共屬性。如果您需要更多的元數據來生成搜索,您可以使用屬性來註釋屬性(或字段,方法等)。這就是我開始的方式。更多細節取決於你的確切用例。

1

你能提供更多細節嗎?

您搜索的目的是什麼?給我30秒的版本,這樣我就能明白你要去哪裏了。

你打算使用正則表達式和詞幹?

什麼樣的數值被視爲匹配?

我假設你只想搜索對象/模型的屬性。對?

是否想查看每個屬性或僅查看其中的一些?

什麼類型的數據存儲在屬性中? (字符串,字節[],枚舉等)

頭腦風暴:

關於搜索一個數據庫服務器端,而不是在你的水合對象

什麼?使用數據庫的速度可能會更快(在運行時),而不是將所有對象加載到內存中,然後反思它們。

您也可以在模型本身的上下文中編寫一個支持搜索的方法。您將搜索規則集作爲表達式傳遞,然後查找匹配項。如果您有某種集合容器,則可以在該級別上針對集合中的所有對象運行搜索。

如果你想要一些反射代碼,我寫了一些東西,通過反射顯示了很多關於對象的信息。我很久以前寫過(2009年12月)。我不確定它是否做到了你想要的。看一看。如果它適合你,請使用它! (Link