PostSharpをEntity-to-DTOとDTO-Entityマッパーに使用することを検討しています。約100の実体についてそのタスクを手作業で行うことは、保守の悪夢となるだろう。私はcodeplexでAutoMapperを見てきましたが、私はPostSharpがマッピングの規約をいくらか余分にコントロールできると感じるだけでなく、オーバーヘッドが重大な問題になるかもしれないと思います。誰かがこの問題の王と何か経験を分かち合うことができれば、それは素晴らしいことです。私はクラスに固執するプレーニングいます局面は、コンテンツと、次の2つのメソッドを埋めるだろうオブジェクトマッパーのPostSharp
:私は考えてい
方向は、この(これが不可能な場合誰かが私に教えてください)のようなものです:
EntityType EntityToDTO(DTOType DTO) {}
DTOType DTOToEntity(EntityType Entity) {}
最初のメソッドはDTOに基づいてエンティティを返し、2番目のメソッドはopositeを行います。アスペクトの中で私は各プロパティをループする予定で、新しいターゲットを作成し、プロパティの値をターゲットオブジェクトの対応するものに設定します。実行時のオーバーヘッドとは別にコンパイル時にこれを行うことは可能ですか?あなたのDTOのフィールド名は、エンティティのフィールド名と一致した場合
なぜオーバーヘッドが問題になるのですか?あなたはそれを測定しましたか? – Paco
あなたがやっていることは簡単な言い回しで簡単に達成できます。リフレクションはパフォーマンスに関して悪いラップを取得しますが、正に、あなたが思うほどのパフォーマンスヒットはありません。 Reflectionは、.NETフレームワークのあらゆる場所で使用され、多くのことを処理します。心の衰えの速さを必要とするものをやっていない限り、リフレクションがうまくいくはずです。データベースから情報をネットワークから取り出すのに要する時間は、ちょっとした反省よりもスケールの大きさが遅いです。パフォーマンス全体はほとんどの認識です。 – Josh