2008-12-16 58 views
1

我想知道是否有可能驗證參數(自定義).net屬性。例如:如果我有一個具有正整數的屬性,當提供負值時,是否可以強制編譯時錯誤?可能驗證.NET Attibute參數嗎?

[DonkeyAttribute(1)] // OK

[DonkeyAttribute(-828)] //錯誤

在這個例子中我可以使用無符號的整數(但非符合CLS我beleive? ) 建議?

回答

0

我不認爲這是正常的,但this文章詳細解決方案使用PostSharp。不知道它是否適合你的目的,但放棄它!

1

你可以用單元測試強制執行此操作;也許是我爲this question提出的解決方案。

0

直接?不可以。不能不重寫csc或vbc。大多數人會在運行時執行所述驗證。

但是,有一點谷歌搜索想出了這個blog entry on PostSharp Aspects。它在技術上沒有從編譯器驗證,但它確實在編譯時提供了檢查。你可以看看here。關於同一作者的PostSharp的其他筆記可以在here找到。

0

您可以通過從System.Attribute繼承來創建自定義屬性。在自定義構造函數中,您應該能夠檢查參數。