如何在C#中将类型转换为System.Type的类型转换

虚空线

我需要初始化一个System.Collections.Generic.List<String>使用Reflection的实例例如,类型名称是从XML加载的,在程序启动之前是未知的。我得到了类型及其组装:

Type T = Type.GetType("System.Collections.Generic.List`1[System.String]");
Assembly ass = T.Assembly;

之后,我需要初始化变量,但是我不想显式地编写类型,因此可以使用:

var lst = ass.CreateInstance(T.FullName) as List<String>;

是不合适的。我已经在T中获得了所需的类型,因此,如果我可以做类似的事情:

var lst = ass.CreateInstance(T.FullName) as T;

应该没问题 但是我不能。我需要做什么?

亚历杭德罗

不可能声明“变量”类型的变量。由于C#是一种强类型的语言,因此在编译时必须事先知道任何变量/属性/方法/参数/类/所有内容。

像您的示例一样,处理动态生成的数据类型的唯一真实方法是保留不安全类型objectdynamic,它可以包含任何内容,甚至在编译时也不知道。还请记住,var语法实际上并不是任何变量,它只是避免编写实类型的语法糖,它是从右侧的类型获得的=,因此对您的目的确实没有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在C#中将动态类型的对象转换为类型参数<T>?

如何在C#中将参数子字符串转换为列类型?

如何在C#中将字符串(ASCII类型)转换为UTF-8

在C#中将通用类型参数转换为特定类型

如何在C#中将Type转换为TEnum

如何在Java中将String类型转换为Class类型

如何在Delphi中将通用类型转换为实际类型

如何在C#中将3D数组类型转换为1D数组类型?

如何在Python中将type.union强制转换为其子类型之一?

无法在C#中将类型为'System.DBNull'的对象转换为类型为'System.String'

如何在C#(.NET)中将类型为DateTimeKind.Unspecified的DateTime转换为DateTime.Kind.Utc

c#-可以从C#类型转换为System.Type,反之亦然

在C#中将字符串转换为类型

如何在 Swift 中将 Enum 类型转换为 Double

如何在Python中将Json对象转换为树类型?

如何在Pytorch中将张量转换为复杂类型?

如何在Swift中将“索引”转换为“ Int”类型?

如何在 python 中将 Str() 类型的列转换为数字?

如何在Kotlin中将类型擦除列表转换为数组?

如何在Swift中将String类型的变量转换为CFString?

如何在Julia中将任何类型转换为String

如何在Typescript中将接口转换为映射类型

如何在Java中将泛型转换为具体类型

如何在Haskell中将数据类型转换为BSON?

如何在R中将数字类型转换为“秒”

如何在Typescript中将类型转换为接口

如何在PHP中将stdClass的属性转换为特定类型?

如何在Rascal中将值类型转换为Map?

如何在Java中将对象转换为字段类型?