.net - 强制 .NET webservice 使用本地对象类,而不是代理类

标签 .net web-services class proxy-classes

我有一个从 Windows 窗体应用程序(都是 .NET,都在同一个解决方案中)调用的 Web 服务,并且我希望我的 Web 服务从项目的​​其他地方返回一个自定义对象 - 这是他们的常见对象两者都共享一个引用,因为它在我的解决方案的第三个项目中。当我调用 web 服务时,它返回一个“Person”对象,但它位于 web 服务的命名空间中,并且它是从 web 服务本身生成的代理类创建的。因此,我无法对其进行操作并将其返回到我的程序,该程序需要一个基于类的共享副本的“Person”对象,而不是来自 web 服务命名空间的代理副本,当我尝试时出现错误将其 CType 为正确的类类型。

如何强制 web 服务使用类的本地副本,而不是代理副本?我的问题在这种情况下有意义吗?如果不是,我会澄清它。

值得注意的是——我已经使用 ByRef 传递所有参数,并使用这些返回值来填充我在返回时创建的对象的副本。这不是最好的方法!

最佳答案

如果您使用 svcutil.exe 生成 WCF 客户端代理,则可以在命令行上使用/reference 来指定包含公共(public)类的程序集。 Svcutil 应该重用该类定义,而不是在服务代理命名空间中生成新的定义。

此外,这仅在您的公共(public)类可序列化并按值传递时才有效(即,它公开为数据契约(Contract),而不是服务契约(Contract))。

关于.net - 强制 .NET webservice 使用本地对象类,而不是代理类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/216884/

相关文章:

.net - 如何在搜索引擎中索引您的 Silverlight 应用程序?

c# - WCF 混合身份验证用户名和 WIndows

java - 大量注释代码会影响类文件的大小吗?

c++ - 如何从双向链表中获取节点内部的有效负载

.NET 兼容性限制

c# - 保存字符串中的重复值

c# - 遍历 XML 节点

c# - 使用网络服务作为 ado.net 实体数据模型的数据源

Java Web 服务客户端 + Axis + Eclipse + Tomcat

c++ - 在 C++ 中,如何创建类实例 w 调用结构或什么都不调用?