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,不能用對象來做到這一點。 如果我添加一個可以由汽車和卡車繼承的接口,我該如何去做這件事? –
將添加到我的答案... –
嘗試我發佈的內容。 –