c# - 使用 Activator 创建实例

标签 c# reflection activator

假设我们有一些类

class Class1{ }
class Class2{ }
class Class3{ }

我有一个类型变量

Type t = /*some type unknown at compile-time*/;

变量 t 是 Class1 或 Class2 或 Class3。我想创建该类的一个实例。据我所知,我可以使用以下语句:

object instance = Activator.CreateInstance(t);

但是我收到了一个对象。问题是:如何将此对象转换为变量 t 中的类型。或者也许有人可以建议解决方法。 谢谢

最佳答案

如果要避免反射,那么

public interface IClass { }
class Class1 : IClass { }
class Class2 : IClass { }
class Class3 : IClass { }

IClass instance = (IClass)Activator.CreateInstance(t);

关于c# - 使用 Activator 创建实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12875204/

相关文章:

durandal 激活器 - 如何创建一个在加载或首次使用时实现 activate() 的模块

c# - 什么是在 C# (ASP.net) 中对查询字符串进行重复数据删除的最快方法

c# - 如何使用 C# 中的 struct 提供显示为 info 的数据?

java - newInstance() 的实例化异常

c# - 以编程方式单击按钮 C#

在 C 中我能找到变量属于什么类型吗?

c# - 针对部署到多个环境的 Web 应用程序的 VS Application Insights

c# - 我应该如何生成 0 到 2 之间的随机数? BCL Random 不是随机的

ios - 如何在 iOS 上扩展 Activator 以识别新的输入手势?

c# - 如何从另一个库创建在网站项目 (App_Code) 中定义的类型的实例