c# - 有没有办法在 c# 中将“int”转换为 typeof(int)?
问题描述
我知道我可以像这样从字符串名称中获取类型
Type intType = Type.GetType("System.Int32");
但是,如果我有这样的字符串怎么办
string[] typeNameArr = new string[] {"Int", "String", "DateTime", "Bool"};
如何将这些转换为实际类型?也许我可以从别名中获取完整的限定名,然后执行GetType
?
解决方案
如果您使用完全限定的名称,"System.Int32"
最后您将能够通过 linq 使用它:
var types = typeNameArr.Select(c => Type.GetType(c));
此外:如果您的 Web 服务提供自定义名称,则您需要映射或约定。例如:
var types = typeNameArr.Select(c => Type.GetType("System." + c));
或者
var types = typeNameArr.Select(c =>
{
switch (c)
{
"Int":
return typeof(int);
"Foo":
return typeof(BarClass);
default:
return null
}
});
推荐阅读
- python - 给定熊猫中只有小时-分钟-秒格式的列,如何以秒为单位返回总时间?
- javascript - Ajax 成功返回已注释的 Html 标记
- javascript - Facebook SDK和自定义按钮在react-native 0.60+中登录不起作用
- python - 如何将用户定义的 python 对象实例传递给 C++ 函数(使用 Python C API)?
- c# - 在不违反 DDD 聚合原则的情况下为 DI 公开实体 CRUD
- tomcat - Tomcat 8 和 Jira 的 servlet 过滤器 JAR 在哪里?
- python - 多个否定前瞻的语法
- python - 从今日图片中抓取维基百科内容
- c-preprocessor - 如何执行 C 预处理器宏的逐步扩展?
- django - 如何将detailview字段绑定到django中的表单字段并保存到数据库中