3

Amazons MWS APIを使用するC#プロジェクトがあります。私のプロジェクトには、Amazonが利用できるようにするAPIごとに特定の名前空間を含める必要があります。問題は、AmazonがAPI間でさえ、APIファイルに類似した、またはまったく同じ名前を持っていることです。

命名の問題に対処するために、レポート、注文、フィードなどのフォルダーをプロジェクト内に作成し、その中にAPIと基になるフォルダー構造を使用しました。私が今抱えている問題は、特定のAPIをどのように参照するかです。

私のフォルダ構造は次のとおりです。

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

参照できるファイルは、Reportsフォルダー内にあるMarketplaceWebService.csです。

次のステートメントが機能します。

using MarketplaceWebService;

しかし、AmazonConnectorsプロジェクトにも含まれ、ReportsAPIと同じフォルダー構造とファイル名を持つFeedsAPI内のコードを参照したい場合はどうなりますか?

「使用」と「ディレクトリ」のキーワードを使用して検索すると、わいせつな量の無関係な資料が返されます。

すべてのファイルを同じプロジェクト内に保持する簡単なソリューションはありますか、それともソリ​​ューション内で各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
4

2 に答える 2

0

複雑な(複雑な)フォルダ構造は必要ありません。すべてのファイルを同じディレクトリに置くことができ(必要に応じて)、次のようにファイルに名前を付けることができます。

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

名前空間もそうです。

明示的なネーミングまたはエイリアシングを使用できます。例:

MarketPlaceWebService=AmazoneConnector.Model.MarketPlaceWebServiceを使用します。または単にAmazoneConnector.Model.MarketPlaceWebService

各ファイルが、利便性のためにバンドルされたメソッドのグループだけでなく、クラスに対応していることを願っています。

于 2012-06-08T18:34:32.843 に答える
0

2つの名前空間間で名前の競合が発生した場合は、他の名前空間の型を参照するときに、完全な名前空間を使用する必要があります。したがって、クラスがあり、名前空間ABの両方にOneあり、名前空間2Twoのクラスが名前空間からBクラスにアクセスする必要がある場合は、単に。ではなく、として参照する必要があります。AOneOne.AA

于 2012-06-08T18:38:59.560 に答える