gpt4 book ai didi

C# 从给定接口(interface)的字符串实例化类

转载 作者:太空宇宙 更新时间:2023-11-03 22:09:25 25 4
gpt4 key购买 nike

我正在尝试根据将从用户界面检索的字符串创建一个类的实例,然后我想访问该类实例的属性。

这是我目前所拥有的概览-

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");

关于C# 从给定接口(interface)的字符串实例化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7195304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com