c# - 从字符串变量中的名称创建类的对象实例

标签 c# .net reflection runtime system.reflection

我不知道这是否可行,但我想知道它是否可行,如果可行,它是如何工作的。所以这是我的问题:

我有 2-3 个自己的自定义模型类。例如,客户员工产品。我在字符串中也有一个类名。根据类名,我想创建一个实例并将其返回到一个 View 。我怎样才能做到这一点?

我知道一个选项是 if/else 语句,但我想要一种更好的动态方式。

最佳答案

在字符串中具有类名不足以创建其实例。 事实上,您需要包括类名在内的完整命名空间来创建对象。

假设您有以下内容:

string className = "MyClass";
string namespaceName = "MyNamespace.MyInternalNamespace";

然后,您可以使用以下任一技术创建该类的实例,即 MyNamespace.MyInternalNamespace.MyClass 类的对象:

var myObj = Activator.CreateInstance(namespaceName, className);

或者这个:

var myObj = Activator.CreateInstance(Type.GetType(namespaceName + "." + className));

希望对您有所帮助,如果没有请告诉我。

关于c# - 从字符串变量中的名称创建类的对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15449800/

相关文章:

c# - 递归遍历对象的属性抛出 StackOverflowException

java - Android Java objModelClass.getClass().getDeclaredFields() 返回 "$change"作为一个字段

c# - C# 中的 XML 构造

c# - winforms html 编辑器

c# - 如何在 Controller 中访问 POST 请求的参数

来自wav文件的C#语音识别,我需要获取每个单词的时间 - lipsync

c# - 使用 LINQ 查找两个列表中项目的复杂组合

c# - 跟踪大型 XML 文件的加载进度

.net - 根据分辨率调整表单/控件大小的最佳方法?

java - C++ 中的反射