0

デバイスドライバーを初期化する最良の方法を見つけようとしています (製造スタッフが管理しています)。構成には通常、デバイス ドライバーの基盤となるハードウェアが変更された場合に、製造スタッフが変更する必要があるシリアル ポートやその他の情報が含まれます。

例えば

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 を検討していましたが、これを実現できるかどうかはわかりません。

4

1 に答える 1