将字符串转换为类名
我有一个代表自定义类名称的字符串变量。例:
string s = "Customer";
我将需要创建一个客户列表。因此,所需的语法为:
List<Customer> cust = new ..
如何转换字符串s以便能够在运行时创建此arraylist?
回答:
好吧,因为一件事ArrayList
不是通用的……是什么意思List<Customer>
?
您可以Type.GetType(string)
用来获取Type
与类型关联的对象的名称。如果程序集不是mscorlib也不是当前正在执行的类型,则需要包括程序集名称。无论哪种方式,您都将需要名称空间。
您确定您确实需要泛型吗?泛型主要提供 编译时 类型安全性,如果在执行时发现类型,显然,您将没有太多的安全性。您 可能会 发现它很有用…
Type elementType = Type.GetType("FullyQualifiedName.Of.Customer");Type listType = typeof(List<>).MakeGenericType(new Type[] { elementType });
object list = Activator.CreateInstance(listType);
如果您需要对该列表 做 任何事情,则可能需要做更多的泛型反射,例如,调用泛型方法。
以上是 将字符串转换为类名 的全部内容, 来源链接: utcz.com/qa/413879.html