[英]C# Interface with static property or methods?
我需要在我的業務邏輯的某些類中定義一個靜態屬性或方法,以明確確定哪些類是Session服務的Cache或Cache中的可緩存。 我在想,界面中的靜態屬性或方法是完美的,但C#4.0不支持這一點。
所有需求都能夠在通用管理器中評估哪些類是可緩存的,如果是,則在哪個級別:會話(用戶)或緩存(應用程序)。
現在我正在嘗試使用帶有T參數的空接口進行評估,但是,可能存在更好的方法? 謝謝。
public interface ICacheable<T>
{
}
public class Country : ICacheable<CacheApplication>
{
}
public class Department : ICacheable<CacheUser>
{
}
public class Gestor<T>
{
// ...
if (typeof(T) is ICacheable<CacheApplication>)
{
}
// ...
}
如何使用自定義屬性? 那么你的課程看起來像這樣:
[Cacheable(Level = CacheLevels.Application)]
public class Country { }
[Cacheable(Level = CacheLevels.User)]
public class Department { }
您可以在此處閱讀有關如何創建自己的自定義屬性,然后使用反射訪問其值的信息。
你不能定義靜態接口,首先,你不能創建靜態類的實例,所以你不能用具有相同基類的其他人替換它們。
你可能最好擁有一個類的單例實例並正常使用接口。 您也可以通過工廠模式強制實施一個和一個實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.