我有一个名为 EntityTypeTransform 的抽象类,它有一个抽象方法,旨在保存一个将 IDataRecord 转换为 T 实例的 Func 委托。
public abstract class EntityTypeTransform<TEntityType> where TEntityType : class
{
public abstract Func<IDataRecord, TEntityType> GetDataTransform();
}
该类的实现可能看起来像(看起来像)这样:
public class TaskParameterEntityTypeTransform : EntityTypeTransform<TaskParameter>
{
public override Func<IDataRecord, TaskParameter> GetDataTransform()
{
return dataRecord => new TaskParameter()
{
TaskId = (int)dataRecord["task_id"],
Name = (string)dataRecord["p_name"],
Value = (string)dataRecord["p_value"]
};
}
}
现在我想在通用字典中保留这些类中的每一个的实例,例如:
Dictionary<Type, EntityTypeTransform<T>>
但这不起作用,因为(例如)TaskParameter 的EntityTypeTransform 的实例与TaskParameter 的EntityTypeTransform 的实例不同。
谁能帮我吗?
编辑:我应该添加 Type key = typeof(T)