0
我想从类中获取对象(在我的情况下是TabPage),但类名是以字符串的形式给出的。我已经做了一个基本的例子,下面是我想要得到的。我曾尝试使用反射,可以得到PropertyInfo但我如何得到实际的对象。如何获得给定字符串名称的类和属性
public Form1()
{
string TabName = "Car";
InitializeComponent();
/*
* Need the ability to get Class from string Name then get ConfigurationTab from that class
* PropertyInfo[] propertyInfo = Assembly.GetExecutingAssembly().GetTypes().Where(t => t.Name == TabName).FirstOrDefault().GetProperties();
*/
}
public class Car
{
public TabPage _Tab;
public TabPage ConfigurationTab { get { return _Tab; } }
public Car()
{
_Tab = new TabPage("Car");
_Tab.BackColor = Color.Red;
}
}
public class Truck
{
public TabPage _Tab;
public TabPage ConfigurationTab { get { return _Tab; } }
public Truck()
{
_Tab = new TabPage("Truck");
_Tab.BackColor = Color.Blue;
}
}
我已经试过了如下代码:
Car car = new Car();
TabPage tp = (TabPage)propertyInfo[0].GetValue(car, null);
和它的工作,但这个想法是类是未知的,由字符串给出。
以下是我尝试的: object obj = Activator.CreateInstance(Type.GetTy pe(“Test.Form1 +”+ TabName)); 但正如所指出的,这给了我的对象“汽车”在我的情况。我需要访问TabPage,不能用对象来做到这一点。 如果我添加一个可以由汽车和卡车继承的接口,我该如何去做这件事? –
将添加到我的答案... –
尝试我发布的内容。 –