2013-03-28 107 views
1

標題幾乎要求所有。我有一個屬性,我想僅限於在派生類中使用ApiFunction。這是以任何方式在屬性構造函數中檢查目標類型並在所有不正確的情況下拋出一個錯誤?是否可以將自定義屬性的屬性用法限制爲僅限某類型/超類型的類?

+0

請參閱http://stackoverflow.com/questions/1190649/specify-required-base-class-for-net-attribute-targets和http://stackoverflow.com/questions/4959863/how-to-make -net-attribute-only-valid-on-certain-types – guruprasath

回答

2

不,不提供有關應用於該代碼元素的信息的屬性。您需要有一種方法來檢查庫中的每種類型/方法,以確保該屬性僅放置在允許的項目上。

您可以實現的功能,您是後通過創建構建過程後運行驗證編譯的程序集的MSBuild任務,允許如果屬性被濫用你製作你自己的編譯時錯誤。

+0

+1使用MSBuild任務的好主意。當然,這不會阻止第三方濫用你的屬性(通過刪除或禁用MSBuild任務),但它可能在內部軟件的團隊環境中有幫助。 – JDB