接口返回值的问题
在开发一个缓存类的时候,发现了一个接口返回的问题,百思不能解决,求帮助:接口:
public interface IDataHelper
{
/// <summary>
/// 根据条件从缓存库中获取数据(数据库是返回IList<T> / 文件是返回string)
/// </summary>
/// <param name="NamespaceClassnameAndPara">保存在缓存库中的key</param>
/// <param name="ht">缓存库</param>
/// <param name="forbase">如果库中不存在,使用这些条件获取数据(类型:FileForBase/DataForBase)</param>
/// <returns></returns>
object GetItem(IHelperPara NamespaceClassnameAndPara, Hashtable ht, object forbase);
}
GetItem 返回 IList<T> 或者string类型,IList<T>的数据是从数据库返回;string 是从文件返回;
数据库类 的继承接口的代码:
public object GetItem(IHelperPara NamespaceClassnameAndPara, Hashtable ht, object forbase)
{
ICache cache = new ITA.Base.EntLib.Caching.Cache(ht);
//如果数据不存在,使用委托获取数据。
// cache.DataDoing(new DataDelegate(GetDataByDataBase<T>), forbase)使用委托获取数据
CacheItem item = cache.GetItem(NamespaceClassnameAndPara, cache.DataDoing(new DataDelegate(GetDataByDataBase<T>), forbase));
return item.Data;
}
IList<T> GetDataByDataBase<T>(object forbase) where T:new()
{
//doing;
}
文件类 的继承接口的代码:
public object GetItem(IHelperPara NamespaceClassnameAndPara, System.Collections.Hashtable ht, object forbase)
{
ICache cache = new ITA.Base.EntLib.Caching.Cache(ht);
//如果数据不存在,使用委托获取数据。
// cache.DataDoing(new DataDelegate(GetDataByDataBase), forbase)使用委托获取数据
CacheItem item = cache.GetItem(NamespaceClassnameAndPara, cache.DataDoing(new DataDelegate(GetDataByDataBase), forbase));
return item.Data;
}
object GetDataByDataBase(object forbase)
{
//doing;
}
现在问题就是出现在 数据库类的方法 GetItem 代码中委托事件 GetDataByDataBase 中返回的 IList<T> 。T不知道如何定义和处理。