簡體   English   中英

C#與靜態屬性或方法的接口?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM