C# 通过字符串c调用类#

C# 通过字符串c调用类#,c#,string,class,C#,String,Class,这个问题有时已经得到了回答,但对我来说还不够清楚 所以问题是:classname存储在一个字符串中,需要使用它来调用这样的类: Jobs TheClass = new Jobs(); 应该是字符串而不是作业。 之后,该函数获取该类中存储的列表 RefList = new List<string>(TheClass.ListItems); 但我仍然不知道如何在代码中实现它 我试过这个: dynamic adap = System.Activator.CreateInstance(T

这个问题有时已经得到了回答,但对我来说还不够清楚

所以问题是:classname存储在一个字符串中,需要使用它来调用这样的类:

Jobs TheClass = new Jobs();
应该是字符串而不是作业。 之后,该函数获取该类中存储的列表

RefList = new List<string>(TheClass.ListItems);
但我仍然不知道如何在代码中实现它

我试过这个:

dynamic adap = System.Activator.CreateInstance(Type.GetType(StringJobs));

RefList = new List<string>(adap.listitems);
dynamic adap=System.Activator.CreateInstance(Type.GetType(StringJobs));
RefList=新列表(adap.listitems);
它给了我一个错误:值不能为null。我认为它不能正确地将“作业”作为一个类来检测。另外,当我将StringJobs更改为Jobs时,这正是类名,它不起作用。
很抱歉,我没有足够的声誉在答案上发表评论,所以我不能这样问。

如果你不想知道关于类型的任何信息,你必须使用dynamic

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; }
    }

}

我指示你找到这一份。它展示了如何使用这个API。如果你想不出如何使用它,那就询问一个具体的问题,而不是发布一个精确的副本。谢谢,我错过了这个问题!
StringJobs
adap
的值是什么?
StringJobs
例如是“account”<代码>adap我不知道,但我用下面的答案解决了我的问题谢谢!工作起来很有魅力!重复的问题没有帮助,这有帮助。
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; }
    }

}