如何使用 C# 包含来自不同文件夹的命名空间

本文关键字:文件夹 命名空间 何使用 包含 | 更新日期: 2023-09-27 18:36:32

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

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

我的文件夹结构如下:

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

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

以下语句有效:

using MarketplaceWebService;

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

我使用"

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

是否有一个简单的解决方案将所有文件保留在同一项目中,或者我是否需要将每个 API 分离到解决方案中自己的单独项目中?

----编辑----

我尝试将报告和提要 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

如何使用 C# 包含来自不同文件夹的命名空间

如果两个命名空间之间存在命名冲突,则只需在引用另一个命名空间中的类型时使用完整命名空间。 因此,如果您在命名空间OneTwo中都有类AB,并且命名空间中的类B 2需要从命名空间One访问类A,它只需要将其称为One.A而不仅仅是A

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

AmazonConnectors.File1.cs..AmazonConnectors.Reports.Attributes.File1.csAmazonConnectors.Reports.Attributes.File2.cs..

命名空间也是如此。

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

使用 MarketPlaceWebService

= AmazoneConnector.Model.MarketPlaceWebService;或只是AmazoneConnector.Model.MarketPlaceWebService

希望每个文件对应于一个类,而不仅仅是捆绑在一起以方便使用的方法组。