アプリケーション (C# - .NET 4.5) 内には、レポート生成ツールがあります。このツールは、SQL コマンドのみを受け取り、それを検証し、そこから、ORM ツールと同様に、SQL コマンドで指定された名前と対応するデータ型と同じ名前の使用可能なフィールドを含むまったく新しいレポートを作成する必要があります。
このツールの性質上、Reflection と Emit を使用してまったく新しいクラスを作成しています。dataReader ( System.Data.SqlClient.SqlDataReader
) によって提供されるフィールドから、型を作成し、対応するデータを入力できます。
この結果は、レポートで使用できる IQueryable オブジェクトです。
このプロセス全体が完了し、テストされていますが、レポート、生成されたクラス、および SQL コマンドの両方を保持するには、この新しい型をデータベースに保存する必要があります。これは、データベースのレイアウトとシステム定義のため、XML を提供する必要があるためです。ファイルや文字列などを、圧縮して保存する前に Base64 文字列に変換するメソッドに変換します。
HEREに示されているように、レポートを DLL ファイルに保存するのは簡単な作業です。
しかし、この新しい型は XML に似た形式に変換する必要があるため、ここで少し迷ってしまいます。
私は過去に反対のことをしました。純粋な XML ファイルから型を手動で完全に作成しました。また、同様のことができることも知っていますが、XML ファイルを作成するには、クラスのすべての詳細/プロパティ/メソッド/メンバーなどにループする必要があります。
ここで私を助けることができる方法 (.NET フレームワークのヘルパーなど) はありますか?
100% 手動で行うのではなく、XML の生成/解析をツールに委任して、おそらくパフォーマンスも向上させたいと思います...
編集:
人々、コメントを投稿する前にタイトルを読んでください!タイプの XML を保存しようとしています。タイプ。オブジェクトではありません。タイプ。
@Mark Gravellヒントをありがとう。私はそれを確認します。しかし、スキーマについて:自動的に保存/ロードする方法はありますか?