如何使用C#从其他文件夹中包含命名空间

时间:2012-06-08 18:22:42

标签: c# namespaces amazon-mws

我有一个使用Amazons MWS API的C#项目。我的项目需要为亚马逊提供的每个API包含一个特定的命名空间。问题是亚马逊有相似或完全相同的API文件名称,甚至跨API。

为了解决命名问题我在我的项目中为报告,订单,供稿等创建了文件夹,其中包含API和底层文件夹结构。我现在遇到的问题是如何引用特定的API?

我的文件夹结构如下:

AmazonConnectors
    |____Reports
         |____Attributes
                 |___[files]      
         |____Model
                 |___[files]
         [files]       

我可以参考的文件是位于Reports文件夹中的MarketplaceWebService.cs。

以下声明有效:

using MarketplaceWebService;

但是,如果我现在想要引用Feeds API中的代码,该代码也包含在AmazonConnectors项目中并且具有与Reports API相同的文件夹结构和文件名,该怎么办?

我使用“使用”和“目录”关键字进行的任何搜索都会返回大量不相关的材料。

是否有一个简单的解决方案可以将所有文件保存在同一个项目中,还是需要将每个API分离到解决方案中的独立项目中?

---- ---- EDIT

我尝试将报告和提要API添加到同一个项目中,并且命名空间是相同的,重复的方法(有一些)会给出重复的定义错误。

Error   49  The namespace 'MarketplaceWebService.Model' already contains a definition for 'Error'   C:\Programming_Projects\ARC\AmazonConnectors\Feeds\Model\Error.cs   28  18  AmazonConnectors

2 个答案:

答案 0 :(得分:0)

不需要精细(复杂)的文件夹结构。所有文件都可以在同一目录中(如果有人想要),可以像这样命名文件:

AmazonConnectors.File1.cs 。 。 AmazonConnectors.Reports.Attributes.File1.cs AmazonConnectors.Reports.Attributes.File2.cs 。

名称空间也是如此。

您可以使用显式命名或别名,例如:

使用MarketPlaceWebService = AmazoneConnector.Model.MarketPlaceWebService; 要么 只是AmazoneConnector.Model.MarketPlaceWebService

希望每个文件都对应一个类,而不仅仅是为了方便而捆绑在一起的方法组。

答案 1 :(得分:0)

如果两个命名空间之间存在命名冲突,则只需在引用其他命名空间中的类型时使用完整命名空间。因此,如果您在命名空间AB以及类One中都有TwoB类,则需要访问类A从命名空间One开始,只需要将其称为One.A,而不仅仅是A