c# - 运行时 C# 创建列表其中 T 是未知的,如 List
问题描述
我有一种将 DataTable 映射到 Class 对象的方法,即 EntityTypes。
我想在 myContext map(Table[xyz]) 中运行一些迭代 foreach 代码,例如 foreach 实体,但是我遇到了问题。
我需要能够执行类似List<GetMyEntityType>
或类似的操作List<typeof(Get.MyEntity)>
我不是想创建对象的实例,我只是想简单地使用对象的类型作为我的方法和列表的类型 T 参数。
直到运行时我才知道类型参数 - 我需要将发现的类型 T 传递到方法中。我查看了建议的链接——它创建了一个类型 T 的实例,我不需要它的实例我需要将类型作为 T 参数传递给我的方法。
见下面的代码:
List<EntityType> ets = GetEntityFromContext(new WorkContext());
foreach (EntityType myEntityType in ets)
{
DataNamesMapper<myEntityType> mapper = new DataNamesMapper<myEntityType>();
List<myEntityType> Jobs = mapper.Map(ds.Tables["Job"]).ToList();
//..... other code
}
解决方案
推荐阅读
- python - 创建新存储桶时的位置选项是什么?
- discord.py - 未在 Discord 中发送欢迎消息(使用 discord.py)
- azure - Azure 中的 Docker 容器应用服务。如何将 DefaultAzureCredential 用于 keyvault
- docker - 是否可以使用 Docker Swarm 在不同节点上运行不同数量的副本?
- vue.js - 如何更改 v-for 循环 vuejs 中项目的背景?
- c# - 线程安全方式的 MemoryCache 更新列表
- r - 如何为采用点坐标的函数设置 R 的 optim() 起始值?
- java - 如何在 Java15 中格式化字符串中的日期?
- rspec - 在哈希中断言一些键/值对
- mysql - Docker 容器无法连接到宿主机数据库