我不知道这是否可行,但我想知道它是否可行,如果可行,它是如何工作的。所以这是我的问题:
我有 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/