如何使用 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
如果两个命名空间之间存在命名冲突,则只需在引用另一个命名空间中的类型时使用完整命名空间。 因此,如果您在命名空间One
和Two
中都有类A
和B
,并且命名空间中的类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
希望每个文件对应于一个类,而不仅仅是捆绑在一起以方便使用的方法组。