我有一个用于数据绑定单个数据源的基类,如下所示:
public abstract class DataControlBase<TContainer, TDataType> : Control
where TDataType : new()
where TContainer : TemplateContainerBase<TDataType>, new()
{
public TDataType DataSource { get; set; }
}
容器类 (TContainer) 将始终从容器基类继承:
public abstract class TemplateContainerBase<TDataType> : Control
where TDataType : new()
{
public TemplateContainerBase() { }
public TDataType DataItem { get; set; }
}
最后我有一个转发器基地,我将绑定几个数据项作为数据源:
public abstract class RepeaterBase<TContainer, TDataType> : DataControlBase<TContainer, List<TDataType>>
where TDataType : new()
where TContainer : TemplateContainerBase<TDataType>, new()
{
}
我在 RepeaterBase 上收到一个错误,说这个
错误 1 类型“TContainer”不能用作泛型类型或方法“WebTestHarness.Controls.DataControlBase”中的类型参数“TContainer”。没有从“TContainer”到“WebTestHarness.Controls.TemplateContainerBase>”的隐式引用转换。
我已经阅读了一些描述类似问题的不同主题,但似乎都与方法有关,而这仅与类设计有关。