C# でいくつかの ASP.NET 4、WCF サービスを使用しており、コードを WCF 構造から分離する最良の方法を知りたいです。クライアントはおそらく気にしないので、これがそれほど多くの作業ではない場合。
ファサード レイヤーを作成して、Web フォームの UI が string、int、datetime などのフラットで単純な型を使用して対話できるようにしました。ファサードは、WCF が必要とする要求/応答オブジェクトを生成して読み取ります。Response オブジェクトを読み取り、クライアントが使用できるように、より単純な Presentation オブジェクトに変換します。ただし、Response オブジェクトは、たとえば DeliveryAddress を含む OrderItem を含む OrderHistory など、いくつかの複雑なオブジェクト タイプを返します。
これらすべての複雑なオブジェクトをビューとして再作成する必要がありますか? つまり、OrderPresentation には IEnumerable-OrderHistoryView- が含まれ、これには IEnumerable-OrderItemView- が含まれ、DeliveryAddressView が含まれますか、これを誤解していますか?
より単純なオブジェクトのいくつかについては、AutoMapper を使用できましたが、ネストされた複雑なオブジェクトに適用する方法や適用する必要があるかどうかはわかりません。デカップリングをあまり気にせず、ファサード オブジェクトとプレゼンテーション オブジェクトを WCF モデルにバインドするだけでよいでしょうか。
助けてください?これに関する良いチュートリアルの例はありますか?
私はどこかに行きます:
public static IList<OrderHistoryView> ConvertToOrderHistoryView(this OrderHistory[] orderHistory)
{
return Mapper.Map<OrderHistory[], IList<OrderHistoryView>>(orderHistory);
}
と
Mapper.CreateMap<OrderHistory, OrderHistoryView>()
.ForMember(dest => dest.Items, opt => opt.MapFrom(src => src.Items));