2012-03-26 7 views
1

私はいくつかのDTOと対応するPOCOを持っています。DTO POCO変換

これらの間で変換するための推奨方法と、変換機能の位置を教えてください。

私の元来の考えは、POCOに2つの変換関数を入れてToPOCOとToDTOと呼ぶことです。

これは何か良いアイデアはありますか?

ありがとう、 アイデア。あなたのためにこれを行うライブラリで

+0

面白いですが、あなたは言葉/プラットフォームについては無視しています。あなたは私が推測するであろう方法から** Java **の名前を見て、私は推測したいと思います。C# – sehe

+0

@seheタグにC#を追加しました –

+0

私が間違っていれば私を訂正してください。 POCOはほぼ同義ですか? – doogle

答えて

6

ルック:

私の個人的な軽量のお気に入りは、暗黙的な変換のOPSを使用することです。これを使うのは、将来のリファクタリングの後に 'グルー'レイヤーを削除するつもりだと付け加えなければなりません。これは、生産環境で長期的な解決策としてうまく機能しないことがあります(間接的に見逃してしまうため)。

public class MyPoco 
{ 
    public static implicit operator MyPoco(MyDTO o) 
    { 
     if (o == null) return null; 
     return new MyPoco { 
      SomeAmount = Convert.ToDecimal(o.SomeAmount), 
      SomeBool = Equals("Y", o.SomeBool ), 
      Sub1  = o.Sub1, 
      Sub2  = o.Sub2, 
     }; 
    } 
    public static implicit operator MyDTO(MyPoco o) 
    { 
     if (o == null) return null; 
     return new MyDTO { 
      SomeAmount = o.SomeAmount.ToString(), 
      SomeBool = o.SomeBool  ? "Y":"N", 
      Sub1  = o.Sub1, 
      Sub2  = o.Sub2, 
     }; 
    } 
    public decimal SomeAmount { get; set; } 
    public bool SomeBool  { get; set; } 
    public MySubPoco1 Sub1  { get; set; } 
    public MySubPoco2 Sub2  { get; set; } 
} 
関連する問題