2009-04-06 4 views

答えて

0

あなたはCSLA.NETを使用できます。マップ機能を提供します。

1

私は目標があるObjectCastorつまずいてきました:

基本的に、それはたsourceType をラップし、InterfaceTypeは インタフェースを実装System.CodeDom 機械を使用して、新しいプロキシ クラスを生成し、 。 .NET Reflectionの助けを借りて、それはのinterfaceTypeタイプを受け継ぎ、 は対応するメンバーを プロキシクラスに生成します。その後、 は、 のCodeDomProviderクラスを使用して、生成されたクラスをコンパイルし、 というCompileAssemblyFromDomメソッドを呼び出します。 この時点で、生成されたクラスは であり、最後に実行するのは で、プロキシ クラスの新しいインスタンスを作成し、ソースオブジェクトを というコンストラクタとして提供します。ユーティリティクラスの完全ソースコード とデモ アプリケーションは、 ダウンロードセクションにあります。

このテクニックは現在CS Scriptで使用されています。 CSScriptのヘルプファイルから:

バージョン2.3.3ではCSScriptは、インタフェースを介して スクリプトへのアクセス/ロード中にインタフェース 継承に魅力 代わるモデルインタフェース アラインメントを、ホスティング 新しいスクリプトを紹介します。

このモデルでは、 適切なインターフェイス(DuckTyping)にスクリプトを「整列」させることで、スクリプトを で操作することができます。このアプローチの 重要な側面は、スクリプトの実行は、(インターフェースを介してアクセス任意 スクリプトのように) 完全型安全であるが、さらに重要なスクリプト ホスト アプリケーションで使用されて インタフェースを実装する必要がないこと あります。ある意味Interface アライメントは強制的な型キャストです: オブジェクトには のすべてのメソッドが定義されている限り、型変換は可能です。 です。この 有望な技術は、ホストと スクリプトビジネスロジックとの間のデカップリングを高レベルで 可能にします。タイプ 安全妥協はありません。

1

これは、answerに約otisが見つかりました。クラスのString属性を使用します。

+0

Automapperよりもはるかに優れています(私はOtaのクラスのメタデータ属性をAutomapperの12個のCreateMap文のように書いています)。 – mare

関連する問題