2011-12-20 158 views
5

我已經爲屬性創建了一些屬性。現在我想限制這些屬性具有某種數據類型的屬性?這個想法是,一個編譯器錯誤將被拋出,如果它被分配給不同的類型。這可能嗎?如果不是,那麼我想我將不得不在運行時檢查它。C#屬性用法:只允許特定數據類型屬性的屬性

+0

可能重複[http://stackoverflow.com/questions/4959863/how-to-make-net-attribute-only-valid-on-certain-types](http://stackoverflow.com/questions/4959863/how-to-make-net-attribute-only-valid-on-certain-type) – heads5150 2011-12-20 10:56:53

+1

我不認爲這是重複的。這是爲了將屬性應用於類。這是針對特定類型的屬性。 – Mel 2011-12-20 11:09:36

+0

但是命運看起來一樣:( – Mel 2011-12-20 11:10:46

回答

7

你可以寫一個自定義的FxCop/ Code Analysis規則來檢查這個。

FxCop集成在VS 2010中,名稱爲「Code Analyis」,您可以更改項目屬性中的規則集。

+0

謝謝,這兩個答案都是很好的和可能的解決方案,我可能會去CA,因爲這是我們在這裏使用的,我知道它可能是個壞東西,但是我們的團隊沒有使用單元測試! – Mel 2011-12-20 11:12:35

+0

@Mel FxCop/Code Analysis絕對是一個不錯的選擇。 – 2011-12-20 22:40:38

4

不,這是不可能的。

一個很好的解決方法是建立一個單元測試它將遍歷所有類,它們的屬性並檢查這個額外的適用性標準。編譯時錯誤信息並不是那麼舒服,但是可以達到目的。如果您擁有某種構建自動化基礎架構,則質量保證級別在實踐中將保持不變。