我正在开展一个C#项目,我有几个电子仪器,如电源和电压表。
每种仪器有多种选择,例如,我们有两种不同类型的电源。我们只为每次运行连接到每种类型中的一种。
在我想到的设计中,我想为每种类型设置一个通用接口,例如
public interface PSU
{
public void connect();
public void disconnect();
...
}
接下来,在我的GUI中,我将注册所有可用的PSU单元,这些单元将显示在菜单项下,在该菜单项中,每种类型只能选择其中一个。
接下来我要做的是让设备以GUI可以创建这些设置的子菜单的方式宣布他们的设置。 我的目标是让它像这样,如果我添加另一个PSU,我只需要注册它。
谢谢
答案 0 :(得分:2)
你可以通过反思检查哪些类实现了你的IPSU(我发誓,Allways以一个有助于维护的资本开始一个界面。)
或许这样的事情?var type = typeof(IPSU);
var types = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(s => s.GetTypes())
.Where(p => type.IsAssignableFrom(p));
当然,您可能需要使用激活器来创建所述类型的实例,然后将它们传递给菜单类,可能是控制器?
你可以创建一个IConvertToMenu,它实现了构建特定菜单所需的所有值。
多数民众赞成我会怎么做。