我正在使用 C# 中的几个 ASP.NET 4、WCF 服务,并且想知道将我的代码与 WCF 结构分离的最佳方法。如果这不是太多的工作,因为客户可能不在乎。
我创建了一个外观层,因此我的 WebForms UI 可以使用简单的简单类型(如字符串、int 和 datetime)与之对话。外观生成并读取 WCF 所需的请求/响应对象。我读取了 Response 对象并将其转换为更简单的 Presentation 对象以供客户端使用。然而,Response 对象返回一些复杂的对象类型,例如包含 OrderItem 的 OrderHistory,它本身包含例如 DeliveryAddress。
现在我应该将所有这些复杂的对象重新创建为视图吗?即 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));