这个问题已经在某个时候得到了回答,但对我来说还是不够清楚。
所以问题是:classname存储在一个字符串中,这需要用来调用这样的类:
Jobs TheClass = new Jobs();
而不是乔布斯应该有字符串。 之后,此函数将获取存储在该类中的列表。
RefList = new List<string>(TheClass.ListItems);
最常见的答案是:
System.Activator.CreateInstance(Type.GetType("Jobs"));
但我仍然不知道如何在我的代码中实现它
我试过这个:
dynamic adap = System.Activator.CreateInstance(Type.GetType(StringJobs));
RefList = new List<string>(adap.listitems);
它给我一个错误:值不能为空。我认为它没有正确地将“乔布斯”视为一个班级。此外,当我将StringJobs更改为Jobs,这正是类名时,它不起作用。 对于留言发布的问题,我没有足够的声誉来发表对答案的评论,所以我不能这样问。
答案 0 :(得分:1)
如果您不想了解有关该类型的任何信息,则必须使用动态。
using System;
using System.Runtime.Remoting;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
ObjectHandle handleA = Activator.CreateInstance("ConsoleApplication2", "ConsoleApplication2.A");
dynamic instanceA = handleA.Unwrap();
instanceA.A1 = 1;
instanceA.b1 = "11";
Console.WriteLine(instanceA.A1);
Console.WriteLine(instanceA.b1);
}
}
public class A
{
public int A1 { get; set; }
public string b1 { get; set; }
}
}