最初に私の目標について少し背景を説明し、次に私のコードと、現時点で最良のアプローチであると現在考えているアプローチを示します。
私の目標:5つの値が格納されているXMLファイルがあり、これらの値を使用してバイト配列を作成します
Microsoft.PointOfServiceを使用して、アプリケーションに次のコマンドをハードコーディングしています。
m_Printer.PrintNormal(PrinterStation.Receipt, System.Text.ASCIIEncoding.ASCII.GetString(new byte[] { 27, 112, 48, 55, 121 }))
ご覧のとおり、バイト配列はハードコーディングされています。
このコードは問題なく動作しますが、ユーザーが変更できるように、値を読み取るために読み取られるXMLファイルが作成されます(これらの値は、RJ11ケーブルを介してEPSONプリンターに接続されたキャッシュドロワーを起動するために使用されます)。 xmlであり、コードを再コンパイルする必要はありません。
XMLは以下のとおりです。
<OpenCashDrawerCommand>
<Byte1 value="27"/>
<Byte2 value="112"/>
<Byte3 value="48"/>
<Byte4 value="55"/>
<Byte5 value="121"/>
</OpenCashDrawerCommand>
したがって、C#コードからハードコードされた値を取得し、コードのどこかで5つの変数に読み込んでいることがわかります。
次に、これらの5つの値を使用してバイト配列を作成し、次のように新しいバイト配列を渡します。
m_Printer.PrintNormal(PrinterStation.Receipt, System.Text.ASCIIEncoding.ASCII.GetString(MYNEWBYTEARRAY);
このリンクには、私が使用を検討したアプローチが含まれています。intのリストをバイト配列に変換する
var bytes = integers.Select(i => BitConverter.GetBytes(i)).ToArray();
したがって、xmlの値(現在クラスに既に読み込んでいます)を取得してバイト配列を作成できる場合は、そのバイト配列を取得できます(静的である可能性が高く、シングルトンの場合が多いでしょう)。クラス)それからそれは仕事が行われるでしょう:)
何か考えはありますか?
どうもありがとう :)