4

我有一个DataUnification.ClientData.ClientInfo在 .NET 类库项目A中调用的可序列化 POCO 。

它用于项目B中定义的 Web 服务的参数中:

public XmlDocument CreateNewClient(ClientInfo ci, string system)

我现在希望从项目C中调用此 Web 方法并在参数中使用原始DataUnification.ClientData.ClientInfo类型。然而,由于生成了代理类,它现在变成了不同的类型:WebServices.ClientDataUnification.DataUnificationWebService.ClientInfo.

就 .NET 而言,这些不是相同的类型。

我怎样才能解决这个问题?

4

4 回答 4

2

您可以通过选中“在指定的引用程序集中重用类型”来使用原始类型,并在高级设置中为您的 Web 服务生成代理时选择包含原始类型的程序集。

在此处输入图像描述

于 2012-07-02T12:17:55.633 回答
0

我的第一个建议是使用手写代理而不是生成的代理,这样您就可以完全控制使用哪些类型。

我的第二个建议是使用 Web 服务工厂之类的工具,它可以让您在生成代码时重用现有类(如果类合适的话)。

于 2010-05-13T01:45:33.623 回答
0

您可以使用 automapper http://automapper.codeplex.com/从 WebServices.ClientDataUnification.DataUnificationWebService.ClientInfo 实例创建一个新的 DataUnification.ClientData.ClientInfo。

于 2010-05-13T01:46:22.523 回答
0

您可以“显示所有文件”并将生成的内容复制reference.cs到新文件中,然后删除生成的代理及其所有依赖文件。

现在,在您的新 reference.cs 中,删除生成的 dto 类并更新所有引用。

那是短而丑陋的方式。

于 2010-05-13T01:48:09.850 回答