DTOからエンティティ、エンティティからDTOに変換する簡単な方法は?
-
03-07-2019 - |
質問
最近、いくつかの分散クライアント/サーバープロジェクトに取り組んできましたが、DTOオブジェクトをエンティティに変換したり、その逆に変換したりすることは常に悩みの種でした。誰もが「シンプル」だと思っていましたこのタイムシンクの解決策は?
考えたことの1つは、リフレクションを使用したある種の翻訳を考え出すことでした...ワイヤーの両側でプロパティ名が完全に同じであることを確認する必要があると思いますが、うまくいくようです。
開発中にこの時間の一部を回避する方法を探しています。
ありがとう!!
解決
最近 AutoMapper を使用していますが、これは魅力のように機能します。
他のヒント
痛みとリスク
手動でプロパティを取得/設定する! これを試しましたか: http://dozer.sourceforge.net/ 。
BeanをBeanに変換するための柔軟で構成可能なフレームワーク。役立つかもしれません!
XDocletなどのツールを使用して(スクリプトを作成するのは難しくありませんが)転送オブジェクトと単純なエンティティ変換を自動的に生成することに成功しました。
とはいえ、エンティティの翻訳がリフレクションを使用して行うのに十分単純であると信じている場合、DTOの代わりにワイヤ上でエンティティオブジェクトを渡すことができない理由はありますか?本格的なDTOよりも少しカスタムシリアル化する方がよい場合があります。
ValueInjecter を使用します。これを使用して、たとえば、あらゆるものにマッピングできます。
object <-> object
object <-> Form/WebForm
DataReader -> object
そして、次のようなクールな機能があります:平坦化と非平坦化
ダウンロードには多数のサンプル(asp.net mvc、web-forms、winforms、unit testsのサンプルアプリケーション)が含まれています