我有一個看起來像這樣的繼承鏈定義的C#數據類:泛型類不接受直接線對象的通用哪裏類型限制
public abstract class EntityBaseCore
public abstract class EntityBase : EntityBaseCore
public partial class AdmSite : EntityBase
而且這樣定義一個通用類:
public abstract class ViewModelSecurityBase<T> : Screen, where T : EntityBaseCore
public abstract class EditorViewModelBase<T> : ViewModelSecurityBase<T> where T : EntityBaseCore
我的視圖模型類看起來是這樣的:
public class SiteViewModel : EditorViewModelBase<AdmSite>
這種失敗,
The type 'Yargo.DataModel.AdmSite' cannot be used as type parameter 'T' in the generic type or method 'Yargo.Common.ViewModel.EditorViewModelBase'. There is no implicit reference conversion from 'Yargo.DataModel.AdmSite' to 'Yargo.DataModel.EntityBaseCore'
AdmSite和EntityBaseCode之間的繼承鏈似乎是直接的。我不明白爲什麼這是失敗的。
您是否在不同的命名空間中有兩個名爲AdmSite的類? – 2012-03-14 16:35:25
我在對象瀏覽器中搜索了名稱,它只找到一個類(交叉編譯到桌面和Silverlight程序集中)。有問題的代碼在Silverlight的結尾。 – Elton 2012-03-14 16:39:02
如果您不繼承'ViewModelSecurityBase',該怎麼辦?它工作嗎? –
Seb
2012-03-14 17:22:35