我有几个可以通过通用 API 进行通信的外部设备。
string busIdentifier = "BUS:0:1";
var dev = new CommonDeviceDriver(busIdentifier);
现在我可以查询设备:
string identifier = dev.QueryIdentifier();
现在我有几个具体的驱动程序,例如ConcreteDeviceA
,ConcreteDeviceB
和ConcreteDeviceC
。每个设备驱动程序都应该有一个“标识符”。
现在我想为这个先前查询的标识符加载正确的设备驱动程序。
怎么进去C#
?
来自 python
我会做这样的事情:
# Have a dictionary where key is identifier and value is the class
supported_devices = {ConcreteDeviceA.identifer : ConcreteDeviceA,
ConcreteDeviceB.identifer : ConcreteDeviceB,
ConcreteDeviceC.identifer : ConcreteDeviceC}
busIdentifier = "BUS:0:1"
dev = CommonDeviceDriver(busIdentifier)
identifier = dev.QueryIdentifier()
concrete_device = supported_devices[identifier](dev) # Get class and call constructor