C# 如何将数据协定转换为客户机对象

C# 如何将数据协定转换为客户机对象,c#,asp.net,wcf,automapper,datacontract,C#,Asp.net,Wcf,Automapper,Datacontract,我们有一个使用asp.net web表单和asmx服务开发的旧应用程序。在开发过程中,开发人员使用数据对象创建了一个类库,它在服务层和客户机层都被引用,为了避免在将数据从服务传递到客户机时发生数据转换,反之亦然,他们修改了服务代理(reference.cs)因此,无论何时更新服务引用,我们都必须转到服务代理并删除wsdl生成的数据对象 现在我们正在将这些ASMX服务转换为WCF,我们不想像前面那样在服务代理中进行手动版本,因此我必须构建某种数据转换方法,将数据从数据契约对象传输到UI模型,反之亦

我们有一个使用asp.net web表单和asmx服务开发的旧应用程序。在开发过程中,开发人员使用数据对象创建了一个类库,它在服务层和客户机层都被引用,为了避免在将数据从服务传递到客户机时发生数据转换,反之亦然,他们修改了服务代理(reference.cs)因此,无论何时更新服务引用,我们都必须转到服务代理并删除wsdl生成的数据对象

现在我们正在将这些ASMX服务转换为WCF,我们不想像前面那样在服务代理中进行手动版本,因此我必须构建某种数据转换方法,将数据从数据契约对象传输到UI模型,反之亦然

有谁能告诉我实现上述目标的更好方法是什么?我们有许多复杂的类对象(大约3到4层深)


我已经尝试过AUTOMAPPER,但AUTOMAPPER正在尝试将值映射到**。由服务代理生成的指定属性,我在类映射逻辑中有大约20-30个属性,这些属性变得非常庞大。

WCF可以为您做大多数事情,比如在ServiceReference中生成代理客户端。我不明白您还有什么需要做的实际上需要实现。您能告诉我们您在代理中手动更新了什么吗?谢谢您的回复Andrew..假设我们通过服务公开一些数据对象,它将在服务代理上创建该对象,因此在客户端,数据契约附带了一些服务。dataContract名称空间。为了避免所有这些,我以前的开发人员所做的是,他们删除了自动生成的合同对象,并包含了实际的数据对象类库名称空间。因此,当数据从服务传输到客户端时,数据将表现为来自类库名称空间,而不是来自某个服务。dataobject..并且他们在UI中引用该类库,因此他们没有担心从一个命名空间到另一个命名空间(DTO)的数据转换.我不知道这样做的目的是什么..现在我想在客户端使用DTO概念,而不是使用自动生成的类。假设服务方法返回了一些EMPLOYEE类,我想将其转换为UIEmployee对象,尽管它具有相同的属性。这样即使我们正在对数据进行更改,UI也不会受到影响合同。请稍等,我会回复你的。现在开始上课:-O