【问题标题】:Namespace in DataContract WCFDataContract WCF 中的命名空间
【发布时间】:2012-03-02 13:57:57
【问题描述】:

我正在 VB 中开发 WCF 服务。我被问到我的 DTO 在不同的命名空间中。这是一个包含两个类的示例:

头等舱:

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 使用名称为 Reply1 进入我的第一个班级,第二个班级名称为 Reply1,而我希望我的班级具有相同的层次结构。所以我想知道是否可以这样做?我期待着您的回复。提前感谢您的关注。

【问题讨论】:

    标签: vb.net wcf namespaces datacontract


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-16
      • 2012-09-01
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      • 2013-06-25
      相关资源
      最近更新 更多