命名空间和类型问题

时间:2011-10-11 19:34:33

标签: c# namespaces

我有两个项目的解决方案。一个名称空间为MarketplaceWebServiceOrders,另一个名称空间为MarketsplaceWebServiceOrders.Sample。我在名为MarketplaceWebServiceOrders的{​​{1}}中有公共界面。我的主要功能在MarketplaceWebServiceOrders,每当我尝试使用界面MarketplaceWebServiceOrders.Sample时,我都会MarketplaceWebServiceOrders

我实际上编译并运行了这个程序,但我需要进行更改并弹出。

3 个答案:

答案 0 :(得分:1)

在这种情况下,您可以使用命名空间访问指定全名的接口:

MarketplaceWebServiceOrders.MarketplaceWebServiceOrders instance = new ...();

无论如何,你的命名看起来不错。您可能滥用名称空间 - 它们应该“分类”类型,不需要将类型名称与名称空间相同。此外,接口以良好的约定为前缀I

答案 1 :(得分:0)

您可能需要考虑重构代码,以使命名空间和类型不那么模糊。命名空间的一个目的是组织代码,因此在命名空间和类型中使用相同的名称有点多余。

答案 2 :(得分:0)

嗯,该错误表明您在MarketplaceWebServiceOrders.Sample命名空间中有一个额外的命名空间级别MarketplaceWebServiceOrders。这是真的?如果是这样,您将需要从基本命名空间完全限定接口的使用:MarketplaceWebServiceOrders.MarketplaceWebServiceOrders是您想要的接口。只是不要在此代码文件中使用基础MarketplaceWebServiceOrders命名空间。

为了避免这种混淆,如果可能的话,我会更改命名空间名称或界面。界面会更容易;如果标识符是实际的C#接口类型(在大多数C风格的语言中建议使用命名约定),请在标识符的前面添加“I”。