我有一個方法,只有在滿足某個條件時纔可以訪問,如果不是,那麼該方法將不會被執行。目前,這是我編寫的東西:現在使用屬性來檢查是否訪問方法
public void CanAccessDatabase()
{
if(StaticClass.IsEligible())
{
return;
}
// do the logic
}
,這個代碼是醜陋的,因爲不出來哪裏有這個if(StaticClass.IsEligible())
條件是不相關的方法的關注。
所以我正在考慮將IsEligible
方法放在屬性中,以便我的代碼看起來像這樣。 如果條件未滿足,則此方法將僅返回而不執行下面的邏輯。
[IsEligibleCheck]
public void CanAccessDatabase()
{
// do the logic
}
資格是一個運行時決定的,當然。
關於如何編碼IsEligibleCheck
的邏輯的任何想法?謝謝
編輯:我知道PostSharp可以做到這一點,但我正在尋找一些可用的,不依賴任何第三方庫的東西。
是一個資格編譯時或運行時決定呢? – 2009-12-21 01:27:18
如果某些事情在無法訪問時嘗試調用該方法,會發生什麼情況?異常拋出?沉默失敗?垃圾結果? – 2009-12-21 01:27:30
如果這是一個編譯時決定,那麼你可以使用屬性'[Conditional(「CONDITION1」)]' – 2009-12-21 01:39:08