我有一个使用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
答案 0 :(得分:0)
不需要精细(复杂)的文件夹结构。所有文件都可以在同一目录中(如果有人想要),可以像这样命名文件:
AmazonConnectors.File1.cs 。 。 AmazonConnectors.Reports.Attributes.File1.cs AmazonConnectors.Reports.Attributes.File2.cs 。
名称空间也是如此。
您可以使用显式命名或别名,例如:
使用MarketPlaceWebService = AmazoneConnector.Model.MarketPlaceWebService; 要么 只是AmazoneConnector.Model.MarketPlaceWebService
希望每个文件都对应一个类,而不仅仅是为了方便而捆绑在一起的方法组。
答案 1 :(得分:0)
如果两个命名空间之间存在命名冲突,则只需在引用其他命名空间中的类型时使用完整命名空间。因此,如果您在命名空间A
和B
以及类One
中都有Two
和B
类,则需要访问类A
从命名空间One
开始,只需要将其称为One.A
,而不仅仅是A
。