我有以下界面
public interface IRepository<T> where T : IEntity, new()
{
List<T> GetAll();
}
我在这里实现的
public abstract partial class WhsePricingRatesAddOnProviderBase : WhsePricingRatesAddOnProviderBaseCore, IRepository<WhsePricingRatesAddOn>
{
/// <summary>
/// Gets all rows from the DataSource.
/// </summary>
/// <returns>Returns a TList of Entity objects.</returns>
public override List<WhsePricingRatesAddOn> GetAll()
{
return base.GetAll();
}
}
也在这里
我在这里实现的
public abstract partial class WhsePricingRatesAddOn2ProviderBase : WhsePricingRatesAddOn2ProviderBaseCore, IRepository<WhsePricingRatesAddOn2>
{
/// <summary>
/// Gets all rows from the DataSource.
/// </summary>
/// <returns>Returns a TList of Entity objects.</returns>
public override List<WhsePricingRatesAddOn2> GetAll()
{
return base.GetAll();
}
}
当我尝试在课堂上使用它时
public class TypeRate
{
public IRepository Repository { get; set; }
public TypeRate(int i)
{
if (i == 1)
{
Repository = (IRepository<WhsePricingRatesAddOn>)SCMSDevMaster.Data.DataRepository.WhsePricingRatesAddOnProvider;}
else
{
Repository = (IRepository<WhsePricingRatesAddOn2>)SCMSDevMaster.Data.DataRepository.WhsePricingRatesAddOn2Provider;}
}
}
}
如果我没有在 IRepository 声明之后放置 <T>,我会收到此错误
使用泛型类型 'IRepository<T>' 需要一个参数。
或者如果我把它,那么我得到
找不到命名空间名称“T”的类型错误
我希望我的 TypeRate 类在创建运行时之前不知道 T,此时我将使用代码为存储库设置正确的 T。
我看错了吗?
我应该指出SCMSDevMaster.Data.DataRepository.WhsePricingRatesAddOnProvider是静态的;