1

次のような単一のデータソースをデータバインドするための基本クラスがあります。

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>」への暗黙的な参照変換はありません。

同様の問題を説明しているいくつかの異なるスレッドを読みましたが、すべてメソッドに関連しているように見えますが、これはクラス設計のみに関係しています。

4

1 に答える 1