0

私は同じ構造を持つ多くのカスタム クラスを持っています。たとえば、それらにはすべてプロパティ パターンがあり、それらのオブジェクトのプロパティは、多くのクラスからこれらのオブジェクトの多くを保存したいので、シリアル化することが重要です。多くのアプリケーションでログ記録システムとして使用されているため、すべてのクラスを 1 つのソリューションにまとめて逆シリアル化することはできません。

ソリューションにクラスがある場合、リフレクションを使用してそれらのプロパティと値を取得し、プロパティをデータテーブルにエクスポートするか、デシリアライズ後にオブジェクトをそのクラスの型にキャストできますが、私の問題は、オブジェクトをデシリアライズして「型」を取得する方法です。私のソリューションにクラスを持たないオブジェクトのプロパティの「、「名前」、「値」。

この場合、デシリアライズしようとすると、「ルート要素が見つかりません」というエラー メッセージが表示されます。

4

1 に答える 1

0

あなたが言及したように、リフレクションによって逆シリアル化されたオブジェクトを検査し、オブジェクトの型を何らかの形で持っていない限り、それがすべてであることを確認してください。つまり、以前に他のアセンブリまたは同じアセンブリでコンパイルしたことを意味します。つまり、間違いなくアセンブリが必要です。

しかし、勇気を失わないでください。リフレクションにより、オブジェクトのクラスが存在するドメインに不可欠なものを除いて、オブジェクトから必要なものをすべて取得できます。たとえば、Product クラスのデシリアライズされたインスタンスを持つことはできますが、Product クラスが何をしているのか、その存在哲学は何かを認識できません。これらのものは、Customer、Order、ProductLine、Stock、およびそのドメインの他のクラスに関連して Product のドメインに配置されます。

しかし、ここでも、すべてのドメインのすべてのクラスによって実装されるクラスの標準的な動作を定義することで、これらの問題を克服できることを願っています。

于 2012-12-08T20:08:18.343 に答える