2013-01-16 80 views
1

使用反射,我可以列出#region中的字段嗎?使用反射,我可以列出#region中的字段?

否則,你能想到的其他方式來實現域上一類「分組」一一列舉?用屬性標記所有字段不是一個選項,因爲這實際上是我想要的。

+3

「#區域」是預處理器指令。它不會被編譯。因此你不能使用反射。也許使用VS api來檢查.cs文件? –

+0

爲什麼你不能用屬性標記字段?字段可以有多個屬性。 – shf301

回答

6

如果你需要將一些字段分組,他們可能屬於他們自己的類。

相應重構代碼,你可以很容易地枚舉領域各組中,因爲每個組現在有自己的類。

0

我不認爲這是可能的,因爲區域是預處理指令並不會被編譯。

也許你應該包括你想要達到的樣本。我認爲會比使用區域更好的解決方案。 每個區域使用一個類並創建一個屬性如何?

-1

傑羅姆,我想我會恢復你的問題,因爲我有相同的要求。

在我的具體情況下,我想使用區域作爲序列化的接口。目前我正在使用屬性,但正如你想提供替代品一樣,語法糖以分組的形式存在。

兩種解決方案,其可以是足夠的: 1)T4模板生成部分類的邏輯,增加了必要的屬性。換句話說T4就是分組邏輯。值得認真考慮可能太難看了。

2)預構建改變代碼,以確保地區分組成員標記有必要的屬性的事件。這是一種部分妥協。

對聽到任何預建區域操作技術會很感興趣。

針對子類的想法,這不是一個很好的選擇,因爲它要麼增加了複雜性合同接口或者它意味着創造額外的屬性來訪問這些被強制子類。

+1

你應該考慮發佈一個新的問題,因爲這不是對問題的直接回答。這是一個回答/新問題 – AK47

+0

這並沒有真正回答這個問題。如果您有不同的問題,可以通過單擊[提問](https://stackoverflow.com/questions/ask)來提問。您可以[添加賞金](https://stackoverflow.com/help/privileges/set-bounties)在您擁有足夠的[聲譽](https://stackoverflow.com/help/)後引起對此問題的更多關注什麼聲譽)。 - [來自評論](/ review/low-quality-posts/17847776) – mmgross

+0

我沒有看到這是一個單獨的問題。 Forkbeard提出了兩個很好的解決方案(使用'T4 template'和'Pre-Build event')來解決問題 – Neverever

相關問題