【问题标题】:Namespace similar name confusion with WCF命名空间与 WCF 类似的名称混淆
【发布时间】:2012-03-03 08:14:34
【问题描述】:

我对我应该遵守哪些规则感到有些困惑。我发现问题的出现是因为当前的应用程序名称恰好是“Common”,这也是“Common”公司库的名称。我有一个 WCF 服务正在运行并引用几个具有以下命名空间的类库:

  • WCF 服务: Common.Services
  • 应用领域层: Common.Domain
  • 通用库: CompanyName.Common

使用这个命名它编译得很好,但是当我使用 WCF 测试客户端使用服务时,它说Company.Common 不包含Domain 你是否缺少程序集引用?

Company.Common 确实不包含嵌套的Domain 命名空间。有单独的Common.Domain 但不应该嵌套所以...?

如果我在另一个已经引用 CompanyName.Common 命名空间的客户端(例如 Web 应用程序)中使用该服务,它不会重用该类型,因为命名空间变得混乱。

使用 Visual Studio,我可以查看客户端上的两个引用程序集,它们显示了正确的结构。据我所知,WCF 似乎不喜欢命名空间。

我想没有其他人遇到过这个吗?

【问题讨论】:

  • 你拼出你所有的类型名称吗?也许尝试在它们前面加上global::
  • 也许可以覆盖 WCFProxyGenerator 中的某些内容?

标签: c# wcf namespaces


【解决方案1】:

如果暴露为不同的 Web 服务端点,当涉及到冲突的命名空间甚至类时,WCF 会出现许多问题。例如,这将导致空的服务 Reference.cs 文件。在任何情况下,一个普遍的好建议是将名称空间重命名为有意义的名称,或者将其分解为许多更有意义的名称空间,而不是“Common”。

【讨论】:

    猜你喜欢
    • 2014-04-14
    • 2012-09-06
    • 2023-01-30
    • 2012-03-29
    • 2022-06-17
    • 2011-10-30
    • 1970-01-01
    • 2011-12-28
    • 2011-01-15
    相关资源
    最近更新 更多