DataContract WCF中的命名空间

时间:2012-03-02 13:57:58

标签: 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,而我想要与我的类相同的层次结构。所以我想知道是否可以这样做?我期待着你的回复。提前感谢您的关注。

1 个答案:

答案 0 :(得分:1)

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