我有两个项目的解决方案。一个名称空间为MarketplaceWebServiceOrders
,另一个名称空间为MarketsplaceWebServiceOrders.Sample
。我在名为MarketplaceWebServiceOrders
的{{1}}中有公共界面。我的主要功能在MarketplaceWebServiceOrders
,每当我尝试使用界面MarketplaceWebServiceOrders.Sample
时,我都会MarketplaceWebServiceOrders
。
我实际上编译并运行了这个程序,但我需要进行更改并弹出。
答案 0 :(得分:1)
在这种情况下,您可以使用命名空间访问指定全名的接口:
MarketplaceWebServiceOrders.MarketplaceWebServiceOrders instance = new ...();
无论如何,你的命名看起来不错。您可能滥用名称空间 - 它们应该“分类”类型,不需要将类型名称与名称空间相同。此外,接口以良好的约定为前缀I
。
答案 1 :(得分:0)
您可能需要考虑重构代码,以使命名空间和类型不那么模糊。命名空间的一个目的是组织代码,因此在命名空间和类型中使用相同的名称有点多余。
答案 2 :(得分:0)
嗯,该错误表明您在MarketplaceWebServiceOrders.Sample命名空间中有一个额外的命名空间级别MarketplaceWebServiceOrders。这是真的?如果是这样,您将需要从基本命名空间完全限定接口的使用:MarketplaceWebServiceOrders.MarketplaceWebServiceOrders
是您想要的接口。只是不要在此代码文件中使用基础MarketplaceWebServiceOrders命名空间。
为了避免这种混淆,如果可能的话,我会更改命名空间名称或界面。界面会更容易;如果标识符是实际的C#接口类型(在大多数C风格的语言中建议使用命名约定),请在标识符的前面添加“I”。