vb.net - DataContract WCF 中的命名空间

标签 vb.net wcf namespaces datacontract

我正在 VB 中处理 WCF 服务。有人问我我的 DTO 是否在 différentas 命名空间中。这是一个包含两个类的示例:

第一课:

Namespace DTO
  Namespace SaveContext

      <DataContract(Namespace:="MyProject/DTO", Name:="Reply")> _
      Public Class Reply

         'Members and methods of my first class

      End Class

  End Namespace
End Namespace

第二类:
Namespace DTO
  Namespace ClearContext

      <DataContract(Namespace:="MyProject/DTO", Name:="Reply")> _
      Public Class Reply

         'Members and methods of my second class

      End Class

  End Namespace
End Namespace

当我来创建一个对象时,一切都很好。下面是一个例子:
Dim saveReply As New DTO.SaveContext.Reply
Dim clearReply As New DTO.ClearContext.Reply

但是当我来做一个测试项目来测试我的服务时,没有命名空间没有出现,而且我的两个类都是一样的。 Intellisence 进入我的第一个名为 Reply 的类,以及名为 Reply1 的第二个类,而我希望我的类具有相同的层次结构。所以我想知道是否可以这样做?我期待着您的回复。预先感谢您的关注。

最佳答案

WCF 正在为您自动解决类“命名冲突”。您将两个单独的 C# 类定义到同一个 XML 命名空间中,以便 WCF WSDL 生成器正确地将它们标记为单独的 XML 架构。您所看到的行为就像 Microsoft 喜欢说的“按设计”。也许你真正需要做的是使用继承和KnownTypes对于您的场景。

关于vb.net - DataContract WCF 中的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9534496/

相关文章:

c++ - 包含 const 变量并包含在多个文件中的 header 的链接错误?

java - 表单和链接中的 Struts2 命名空间需要前缀吗?

namespaces - 要使用 bpel 中分配操作的哪个命名空间 - selectionFailure,没有表达式结果

c# - .Net 使用 Lockbits 从位图中获取 RGB 值

c# - C# 或 VB.NET 中的 std::bind 等价物

vb.net - 如何删除文件夹中的所有文件(包括子文件夹中的文件)而不删除文件夹本身或其任何子文件夹

c# - 将自定义文件系统与 Entity Framework 4.0 结合使用

c# - 如何解决 Visual Studio : "Parameter ?_1 has no default value."? 中的此错误

c# - WCF Rest 服务 - 获取对 HTTP 响应 header 的访问权限

asp.net - 从 WCF 中的 ASP.NET RESTful Web 服务返回错误的最佳实践