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>
{
}