2012-02-10 53 views
4

我对我应该遵循的规则有点困惑。我发现问题出现了,因为当前的应用程序名称恰好是“Common”,这也是“Common”公司库的名称。我有一个WCF服务运行,并引用了几个类库与下面的命名空间:命名空间与WCF相似的名称混淆

  • WCF服务: Common.Services
  • Appliation领域层: Common.Domain
  • 公用库: CompanyName.Common

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

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

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

使用Visual Studio我可以查看客户端上的两个引用程序集,它们显示正确的结构。从我可以告诉它看来,WCF不喜欢命名空间。

我不认为有人遇到过这个吗?

+1

你是否拼出所有类型的名字?也许尝试在'global ::'前加前缀。 – 2012-02-11 02:07:18

+0

也许有可能重写WCFProxyGenerator中的某些东西? – Evgeny 2013-07-22 09:21:35

回答

1

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