如何将String转换为Class引用

本文关键字:Class 引用 转换 String | 更新日期: 2023-09-27 17:54:42

我有一个字符串类名,我想把它转换成一个类引用

if (System.Windows.Forms.Application.OpenForms[row.Cells[0].Value.ToString()] != null)                                     
{
    (System.Windows.Forms.Application.OpenForms[row.Cells[0].Value.ToString()] as PC_01).accept();
}

我想使用字符串"PC_01"而不是类PC_01

如何将String转换为Class引用

尝试使用Activator类。见http://msdn.microsoft.com/en-us/library/vstudio/System.Activator%28v=vs.110%29.aspx

如果你想把一个对象的类型表示为字符串,你可以借助type类来实现,并使用dynamic来调用这个实例的方法。

object obj = System.Windows.Forms.Application.OpenForms[row.Cells[0].Value.ToString()];
Type t = Type.GetType("myNamespace.PC_01, myAssembly");
if (obj.GetType() == t)
{
   ((dynamic)obj).accept();
}