メモリ バッファにシリアライズしたいオブジェクトがあり、UART 経由で組み込みデバイスに送信されます。WindowsのC#環境で作業しています。
私がやりたいのは、次のような 2 つのクラスを作成することです。
class StatusElement
{
byte statusPart1;
byte statusPart2;
}
class DeviceCommand
{
byte Address;
byte Length;
StatusElement[] statusElements; // Can have an arbitrary number of elements in it
}
2 番目のクラスをバイト ストリームに変換するために、シリアル化、できれば C# シリアル化に基づくものを使用したいと思います。
問題は、組み込みデバイスが正確なシーケンス (AddressByte、LengthByte .... ErrorCorrectionByte) を受け入れるようにハードコードされているため、ストリームにシリアル化メタデータを追加する通常の C# シリアル化を使用できないことです。これにより、Protobuf などの他のシリアル化も除外されます。
だから私の質問は: 必要な出力を得るために c# のシリアル化をカスタマイズすることは可能ですか? どのように?
- - アップデート - -
助けてくれてありがとう。検討の結果、リフレクションと型ごとのハンドラーを使用して、独自のミニシリアライザーを実装することにしました。より複雑ですが、柔軟性と自動化機能が向上します。