2010-05-13 48 views
4

我有一个序列化的POCO在.NET类库项目一个称为DataUnification.ClientData.ClientInfo如何避免使用代理类的Web方法参数?

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

public XmlDocument CreateNewClient(ClientInfo ci, string system) 

现在,我想打电话从项目ç此Web方法和参数使用原来的DataUnification.ClientData.ClientInfo类型。但是由于生成的代理类,它现在变成了另一种类型:WebServices.ClientDataUnification.DataUnificationWebService.ClientInfo

至于.NET而言,这些是不一样的类型。

我该如何解决这个问题?

回答

0

我的第一个建议是,而不是使用生成的代理手写的代理,所以你必须完全控制其使用的类型。

我的第二个建议是使用像Web服务工厂,其中有一个选项,让你重用现有的类时,它生成代码的工具(如果类是适当的。)

+0

我编辑生成的代理使用POCO,它都能正常运作。不知道Web服务工厂 - 看起来很有趣。 – 2010-05-13 05:18:46

0

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

0

可以“显示所有文件”和生成的reference.cs的内容复制到一个新的文件,然后删除生成的代理及其所有相关文件。

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

这是一个简短的丑陋的方式。

2

你可以只检查“中指定引用的程序重用类型”使用原来的类型和选择包含原始类型,同时生成代理在提前设置你的Web服务组件。

enter image description here

+0

这是这里唯一合适的答案 – ABH 2012-07-02 12:20:00

相关问题