<分区>
要创建一个类的实例,我们可以这样做:
Person p = new Person();
但是,我想用这样的字符串动态传递类的名称:
String name = "Human.Person"
name n = new name();
我知道这是错误的,但我看到我可以使用反射,但我不明白如何在我的案例中使用它。
<分区>
要创建一个类的实例,我们可以这样做:
Person p = new Person();
但是,我想用这样的字符串动态传递类的名称:
String name = "Human.Person"
name n = new name();
我知道这是错误的,但我看到我可以使用反射,但我不明白如何在我的案例中使用它。
最佳答案
对于这种情况,您可以使用 Activator.CreateInstance。
object person = Activator.CreateInstance(Type.GetType("Human.Person"));
或者最常用的是使用基类或接口(interface):
IPerson person = (IPerson)Activator.CreateInstance(Type.GetType("Human.Person"));
关于c# - 使用反射创建实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42705659/
相关文章:
.net - 哪些日志查看器工具可以读取 System.Diagnostics.EventSchemaTraceListener 创建的 XML?
c# - 通过混合连接从客户端连接到 Azure Web 作业
c# - 如何在不滚动和丢失选择的情况下将文本附加到 RichTextBox?
c# - 通过 TFS/Team Build 在构建机器上构建工作,但不通过 TeamCity
c# - 如何通过来自多个程序集的接口(interface)有效地对所有实现进行分组?
c# - Microsoft Enterprise Library 缓存应用程序 block 不是线程安全的?