gpt4 book ai didi

c# - 在 C# 中在运行时将字符串转换为类

转载 作者:行者123 更新时间:2023-12-04 09:33:25 26 4
gpt4 key购买 nike

我在数据库中有类名,如“工作中心”和“假期”等。
我的项目命名空间是“CMMI.API.Model”
连接命名空间和表名后,它变成 "CMMI.API.Model.Holidays" “CMMI.API.模型.工作中心”
我想将此字符串类名转换为应用程序类名。是他们的任何方式来转换它。
即使我不知道类的名称,也可以有多个类。
我不想像下面这样使用:

object obj;
switch(className)
{
case "Foo":
obj = new Foo();
break;
case "bar":
obj = new Bar();
break;
...
}
我不想在 switch 语句中创建新的类实例,而是简单地将字符串转换为类。
任何帮助将不胜感激

最佳答案

尝试这个

const string objectToInstantiate = "SampleProject.Domain.MyNewTestClass, MyTestProject";

var objectType = Type.GetType(objectToInstantiate);

var instantiatedObject = Activator.CreateInstance(objectType) as ITestClass;
如果您有不同的构造函数,仍然很难做到这一点,但使用默认构造函数它会正常工作
您还可以在那里找到另一个重载: https://docs.microsoft.com/en-US/dotnet/api/system.activator.createinstance?view=netcore-3.1

关于c# - 在 C# 中在运行时将字符串转换为类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62715439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com