0

DLL をロードし、事前定義されたオブジェクトをインスタンス化するプログラムがあります。このオブジェクトには、名前が XML ファイルで定義されている多数のプロパティがあります。私のプログラムは、インスタンス化されたオブジェクト内でこれらのプロパティを取得/設定する必要があります。

同じことを行うためのパターン/方法を探しています。

この Get/Set メソッドはプログラムのループで継続的に呼び出されるため、Reflection を使用できません。リフレクションを使用すると、非常にコストがかかります。

このようなシナリオで使用するベスト プラクティスはありますか??

注 : 必要に応じて、DLL から動的にロードされるオブジェクトの構造を変更できます (開発中です) が、私のプログラムはオブジェクトのプロパティの名前を認識していません (DLL も動的に生成されています。基本的に、ユーザーがオブジェクトに必要なメンバーを指定すると、別のプログラムがコード ファイルを生成し、上記の DLL にコンパイルします. その後、私のプログラムは、この新しく生成された DLL をロードし、作業を開始します. だから、私は構造を変更することができます. DLL 内のオブジェクトのプロパティはわかりませんが、DLL オブジェクトに含まれるプロパティを事前に知りません。)

4

1 に答える 1

0

まだ手遅れでない場合は、次のアプローチをお勧めします。

次のように外部プログラムを設計します。

  1. ユーザー入力を xml ファイルとして構造化します。
  2. .Net Framework SDK に同梱されている Xsd.exe ツールを使用して xsd ファイルを生成します。
  3. xsd.exe を使用して、xsd ファイルから再度クラスを生成します。

このようにして、メイン アプリケーションを作成し、純粋な xml を外部プログラムによって生成されたクラスに逆シリアル化できます。最終的には次のようになり、維持するコードはほとんどありません。

外部プログラム: Xml データ -> Xsl スキーマ -> GeneratedClasses

メイン アプリケーション: Xml データ -> インスタンスに逆シリアル化

于 2012-12-18T08:20:21.357 に答える