代码之家  ›  专栏  ›  技术社区  ›  Alex Angas Colin

如何使用代理类避免Web方法参数?

  •  4
  • Alex Angas Colin  · 技术社区  · 16 年前

    我有一个可序列化的poco DataUnification.ClientData.ClientInfo 在.NET类库项目中 .

    它在Project中定义的Web服务的参数中使用 :

    public XmlDocument CreateNewClient(ClientInfo ci, string system)
    

    我现在想从Project调用此Web方法 C 使用原版 数据统一.clientdata.clientinfo 键入参数。但是,由于生成的代理类,它现在已成为不同的类型: WebServices.ClientDataUnification.DataUnificationWebService.ClientInfo .

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

    我怎么能避开这个?

    4 回复  |  直到 12 年前
        1
  •  0
  •   Toby    16 年前

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

    我的第二个建议是使用类似于Web服务工厂的工具,它有一个选项,允许您在生成代码时重用现有的类(如果类是适当的话)。

        2
  •  2
  •   Asif Mushtaq    13 年前

    只需选中“重用指定引用程序集中的类型”,然后在高级设置中为Web服务生成代理时选择包含原始类型的程序集,即可使用原始类型。

    在高级设置中为Web服务生成代理时,选择包含原始类型的程序集。

    enter image description here

        3
  •  0
  •   Raj Kaimal    16 年前

    你可以用automapper http://automapper.codeplex.com/ 从webservices.clientdatauniversion.dataunificationwebservice.clientinfo实例创建新的datauniversion.clientdata.clientinfo。

        4
  •  0
  •   Sky Sanders    16 年前

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

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

    这是一条丑陋的捷径。

    推荐文章