我对应该遵循的规则感到有点困惑。我发现问题的出现是因为当前的应用程序名称恰好是“Common”,这也是“Common”公司库的名称。我有一个 WCF 服务正在运行并引用了几个具有以下命名空间的类库:
- WCF 服务: Common.Services
- 应用领域层: Common.Domain
- 公共(public)库: CompanyName.Common
有了这个命名,它编译得很好,但是当我使用 WCF 测试客户端使用服务时,它说 Company.Common
不包含 Domain
您是否缺少程序集引用资料?
Company.Common
确实不包含嵌套的 Domain
命名空间。有单独的 Common.Domain
但不应嵌套,所以...?
如果我在已经引用 CompanyName.Common
命名空间的另一个客户端(例如 Web 应用程序)中使用该服务,它不会重用该类型,因为命名空间变得困惑。
使用 Visual Studio,我可以查看客户端上的两个引用程序集,它们显示了正确的结构。据我所知,WCF
似乎不喜欢命名空间。
我想没有其他人遇到过这个吧?
最佳答案
如果暴露为不同的 Web 服务端点,WCF 在命名空间甚至类冲突方面存在许多问题。例如,它会导致服务 Reference.cs 文件为空。在任何情况下,一个普遍的好建议是将命名空间重命名为有意义的名称,或者将其分解为除“Common”之外的更多有意义的命名空间。
关于c# - 命名空间与 WCF 的相似名称混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9234915/