我正在尝试在列表中缓存一些类。
因为这个类有一个泛型属性,所以我创建了一个类的非泛型类型,它是这个列表的类型。
所以我的 BO 看起来像这样:
public class Model<T> : Model where T : class
{
public T Cls
{
get { return (T) ClsObject; }
set { ClsObject = value; }
}
}
public class Model
{
public List<ModelProperty> Properties { get; set; }
public string ModelName { get; set; }
public Type ClsType { get; set; }
public object ClsObject { get; set; }
}
所以这里是缓存类:
private static List<Model> CachedModels {get; set;}
public static Model<T> GetCachedVersion<T>(this T cls) where T : class
{
var ret = CachedModels.FirstOrDefault(x => x.ClsType == typeof(T));
return ret != null ? (Model<T>)ret : null;
}
但是来自 GetCachedVersion-Method 的转换崩溃了,我不明白为什么。
感谢您的任何提示!