我试图基于将从用户界面中检索到的字符串创建类的实例,然后我要访问该类的实例的属性。
这是我到目前为止的概述-
namespace MamdaAdapter
{
public interface IExchange
{
string GetTransport();
}
}
namespace MamdaAdapter
{
public class Exchange
{
public class Arca : IExchange
{
private const string _Transport = "tportname";
public string GetTransport()
{
return _Transport;
}
}
public static IExchange DeriveExchange(string ExchangeName)
{
IExchange SelectedExchange = (IExchange)Activator.CreateInstance(Type.GetType(ExchangeName));
return SelectedExchange;
}
}
}
namespace MyUserInterface
{
public class MainForm
{
private void simpleButton1_Click(object sender, EventArgs e)
{
IExchange SelectedExchange = Exchange.DeriveExchange("Exchange.Arca");
Console.WriteLine(SelectedExchange.GetTransport());
}
}
}
更新:
现在,我收到一个异常,该异常对我来说意味着“值不能为空”,这意味着在给定提供的字符串的情况下,它无法创建该类的实例-
最佳答案
这里的问题是如何指定类的名称:
首先,指定名称空间。其次,由于Arca是内部类,因此必须使用“ +”代替“。”。
(...) = Exchange.DeriveExchange("MamdaAdapter.Exchange+Arca");