我正在尝试找到初始化设备驱动程序(由生产人员维护)的最佳方法。配置通常包含串行端口和其他信息,如果设备驱动程序的底层硬件发生变化,生产人员可能需要更改这些信息。
例如
using System.IO.Ports;
public class Scanner : IDriver
{
public SerialPort SerialPort { get; private set; }
public String Id { get; private set; }
public String DisplayName { get; private set; }
public Scanner(SerialPort serialPort, String id, String displayName)
{
SerialPort = serialPort;
Id = id;
DisplayName = displayName;
}
}
public class TestMethod
{
public Scanner MainScanner { get; private set; }
public Scanner SecondaryScanner { get; private set; }
public TestMethod (Scanner main, Scanner secondary)
{
MainScanner = main;
SecondaryScanner = secondary;
}
}
如何使用 DI 容器并在运行时仍使配置可更改?我想避免使用 DI 容器附带的 XML 配置,因为我希望生产人员经常修改这些(配置)文件。最好使用单独的配置文件。
xml配置的一种可能实现
<DeviceDrivers>
<Driver name="main" id="IX234" displayName="main scanner">
<SerialPort name="serialPort" portName="COM8" baudRate="11560" parity="None" dataBits="8" stopBits="None">
</Driver>
<Driver name="secondary" id="IX2E3" displayName="secondary scanner">
<SerialPort name="serialPort" portName="COM9" baudRate="11560" parity="None" dataBits="8" stopBits="None">
</Driver>
</DeviceDrivers>
SerialPort
本身需要从配置文件中初始化。
谢谢
PS:我正在考虑 Ninject,但不确定我是否可以成功。