標題將其總結。假設我定義了一個自定義屬性IsModule。它用於我用來加載所有模塊的枚舉類型。如果枚舉類型具有不同的自定義屬性,則需要自定義枚舉屬性
即assembly.GetCustomAttributes(typeof運算(IsModule),真)
一旦我有有屬性的所有枚舉,我遍歷每個枚舉和讀取不同的自定義屬性ModuleData,這樣我可以將它插入到數據庫。
我想要做的是通過要求ModuleData屬性覆蓋每個枚舉值(如果該類型上存在IsModule屬性)來進行開發人員驗證。
標題將其總結。假設我定義了一個自定義屬性IsModule。它用於我用來加載所有模塊的枚舉類型。如果枚舉類型具有不同的自定義屬性,則需要自定義枚舉屬性
即assembly.GetCustomAttributes(typeof運算(IsModule),真)
一旦我有有屬性的所有枚舉,我遍歷每個枚舉和讀取不同的自定義屬性ModuleData,這樣我可以將它插入到數據庫。
我想要做的是通過要求ModuleData屬性覆蓋每個枚舉值(如果該類型上存在IsModule屬性)來進行開發人員驗證。
有沒有直接的語言功能來幫助。但是,這裏有三個備選選項:
請注意,在單元測試(選項3)的情況下,您需要以確保程序的所有程序集都已加載的方式運行它。
您可以使用稱爲模塊初始值設定項(或模塊構造函數)的東西來掃描您的模塊是否符合所述條件的枚舉並拋出一些異常。
的事情是,當IL支持的話,C#本身並沒有,所以你需要一些「幫助」 :)
一種可能的實現可以在這裏找到:
單元測試是一個好主意 –
#1有我的興趣達到頂峯。我可以爲開發人員編寫一個完整的執法庫。從來沒有做過這個,你有一個好的資源開始? – JDBennett
@JDBennett檢查SO:http://stackoverflow.com/search?q=%5Bfxcop%5D+custom+rule ;-) –