0

DerivedFileInfo クラスの宣言でエラーが発生しています。

エラー : 型 'StorageManager.Test.DerivedStorageProvider' は、ジェネリック型またはメソッド 'StorageManager.Test.BaseFileInfo' の型パラメーター 'TStorageProvider' として使用できません。「StorageManager.Test.DerivedStorageProvider」から「StorageManager.Test.IStorageProvider」への暗黙的な参照変換はありません。

一般的な制約に欠けているものがありますか、それとも一般的な共変が必要ですか?

public interface ICacheProvider
{
}

public class BaseCacheProvider : ICacheProvider
{
}

public class DerivedCacheProvider : BaseCacheProvider
{

}

public interface IStorageProvider<TCacheProvider> where TCacheProvider : ICacheProvider
{
}

public abstract class BaseStorageProvider<TCacheProvider> : IStorageProvider<TCacheProvider> where TCacheProvider : ICacheProvider
{
}

public class DerivedStorageProvider : BaseStorageProvider<DerivedCacheProvider>
{
}

public interface IResourceInfo<TStorageProvider> where TStorageProvider : IStorageProvider<ICacheProvider>
{
}

public abstract class ResourceInfo<TStorageProvider> : IResourceInfo<TStorageProvider>
    where TStorageProvider : IStorageProvider<ICacheProvider>
{
}

public abstract class BaseFileInfo<TStorageProvider> : ResourceInfo<TStorageProvider> where TStorageProvider : IStorageProvider<ICacheProvider>
{
}

public class DerivedFileInfo : BaseFileInfo<DerivedStorageProvider>
{ 
}
4

0 に答える 0