問題タブ [name-collision]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - パッケージは、メイン クラス名の 1 つであるルート名前空間を使用します
プロジェクトに IronPython を使用しています。セットアップは次のとおりです。
Project.Main にはCommunity
、メイン クラスの 1 つであるというクラスがあります。どこでも使われています。
現在、IronPython には、 Sqlite3 というクラスを持つCommunity .CsharpSqliteという名前空間があります。
- MyProject.Main 内でこのクラスを参照する必要はありません
- MyProject.Main 内の IronPython パッケージから直接クラスを使用していません。
- MyProject.Python のラッパー クラスのみを参照します。
ただし、次のようになっているため、すべてのコードがコンパイルされなくなりました。
エラー CS0118 'Community' は名前空間ですが、型のように使用されています
これは非常に大規模なプロジェクトであり、Community クラスへのすべての参照に名前空間プレフィックスを付けることを開始したくありません。
- 回避策はありますか?
- IronPython 名前空間を MyProject.Python のみに公開できますか?
- Aliases と PrivateAssets オプションの両方を試しましたが、ソリューション エクスプローラー内に警告シンボルが表示され、機能していないようです (まだ CS0118)。
- https://docs.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-filesを参照してください
プロジェクト例:
https://www.dropbox.com/s/hayi3a4ctrh8rlx/NamespaceProblem.zip?dl=0