我在.NET类库项目 A 中有一个名为DataUnification.ClientData.ClientInfo
的可序列化POCO。
它用于项目 B 中定义的Web服务的参数:
public XmlDocument CreateNewClient(ClientInfo ci, string system)
我现在希望从项目 C 调用此Web方法,并在参数中使用原始的DataUnification.ClientData.ClientInfo
类型。但是由于生成的代理类,它现在变为另一种类型:WebServices.ClientDataUnification.DataUnificationWebService.ClientInfo
。
就.NET而言,这些类型并不相同。
我怎样才能解决这个问题?
答案 0 :(得分:2)
您只需选中“在指定的引用程序集中重用类型”即可使用原始类型,并在高级设置中为Web服务生成代理时选择包含原始类型的程序集。
答案 1 :(得分:0)
我的第一个建议是使用手写代理而不是生成代理,因此您可以完全控制使用哪些类型。
我的第二个建议是使用像Web Services Factory这样的工具,它可以让你在生成代码时重用现有的类(如果类是合适的话)。
答案 2 :(得分:0)
您可以使用automapper http://automapper.codeplex.com/从WebServices.ClientDataUnification.DataUnificationWebService.ClientInfo实例创建新的DataUnification.ClientData.ClientInfo。
答案 3 :(得分:0)
您可以“显示所有文件”并将生成的reference.cs
的内容复制到新文件中,然后删除生成的代理及其所有相关文件。
现在,在新的reference.cs中,删除生成的dto类并更新所有引用。
这是一个简短的丑陋方式。