C# バイナリ デコーダを構築したいと考えています。バイナリファイルのデータ構造を記述したXMLファイルがあります。
次のステップは、その XML に基づいて (コードで) データ構造を動的に作成することです。皆さん、コメント、リンク、コードなどはありますか?
これが一般的な質問であることは承知していますが、どこから始めたいのか、どこから手がかりがありません。
編集:
コードを削除する必要があります...
ブラジル
C# バイナリ デコーダを構築したいと考えています。バイナリファイルのデータ構造を記述したXMLファイルがあります。
次のステップは、その XML に基づいて (コードで) データ構造を動的に作成することです。皆さん、コメント、リンク、コードなどはありますか?
これが一般的な質問であることは承知していますが、どこから始めたいのか、どこから手がかりがありません。
編集:
コードを削除する必要があります...
ブラジル
(XML 定義に基づいてクラスを静的に構築するのではなく) 構造を動的に作成したいので、クエリを実行できる汎用データ構造が必要だと思います。これが正確にどのように見えるかは、記述しているデータ構造の種類によって異なります。レコードとフィールドですか?階層内に複数のレコード タイプがありますか? 階層がない場合は、各フィールドにキーと値のペアの辞書を使用できます。階層がある場合、ナビゲート可能なツリーがほとんどのシナリオをカバーすると考えていたでしょう。これには XML DOM を使用できますが、それは最もクリーンなソリューションではないと思います。一般的なツリー構造を使用することを好みます。組み込みのものはありませんが ( C# のツリー データ構造を参照)、ジェネリックを使用して作成するのはかなり簡単です。
編集
上記は、動的に使用される構造を動的に作成することを前提としています。静的に使用されるコードで構造を動的に作成したい場合(たとえば、 のようなものを記述できるようにしたい場合myDataStrucureThatWasDefinedInXml.MyProperty1
)、CodeDom を参照してください。
もう少し考えてみると、バイナリ データをデシリアライズした後に何をしたいかによって異なります。また、Expando オブジェクトと式ツリーも参照してください。
XML ドキュメントのコンテンツを読み書きするにXmlDocument
は、C# で提供されるクラスを使用できます。
以下に役立つリンクをいくつか示します。