gpt4 book ai didi

c# - 将 typeof(T) 转换为 T

转载 作者:太空狗 更新时间:2023-10-30 01:16:35 26 4
gpt4 key购买 nike

我有这个通用函数:

public List<T> GetList<T>() {
var businesType = typeof(T);
var databaseType = AutoMapperConfiguration.TypeMapping[businesType];

var databaseEntityList = DataModelAccess.GetEntityList(databaseType);

var businessEntityList = Mapper.Map(databaseEntityList, databaseEntityList.GetType(), typeof(List<T>));
return (List<T>)businessEntityList;

}

但我想要的是像那样调用 DataModelAccess:

DataModelAccess.GetEntityList(databaseType);

是将 databaseType 作为通用类型发送,就像这样:

DataModelAccess.GetEntityList<DatabaseType>();

为了像List<T> 一样返回这个方法.

谢谢!附言DataModelAccess.GetEntityList(databaseType) 的定义是:

public static List<object> GetEntityList(Type databaseType)
{
//get data from database
//retunt it as List<object> <= and I dont like that
}

最佳答案

一个非常像你的 GetList<T> 的函数应该可以为您解决这个问题。

public List<T> GetEntityList<T>() { }

然后你可以调用它

typeof(DataModelAccess)
.GetMethod("GetEntityList")
.MakeGenericMethod(databaseType)
.Invoke();

希望这对您有所帮助。

关于c# - 将 typeof(T) 转换为 T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34737955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com