Ich habe ein Problem mit der Namensauflösung eines Typs namens Action. Während das Projekt in einem frühen Stadium war und alles im selben Projekt deklariert wurde, bevorzugte der Compiler immer meine eigene Klasse. Jedoch, seit es notwendig geworden ist, das Projekt in verschiedene Assemblys zu trennen (z.B. ProjectName.Common, ProjectName.Engine, etc.), ist ein Namenskonflikt zwischen System.Action und ProjectName.Common.Action aufgetreten.
Ich habe herausgefunden, dass ich den internen Namespace des Projekts explizit innerhalb der Namespace-Deklaration einer beliebigen Projektdatei importieren kann, während System immer noch im globalen Gültigkeitsbereich importiert wird, wie ursprünglich vom IDE erstellt. Tatsächlich funktioniert das, sieht aber nicht sehr elegant aus. Gibt es einen besseren Ansatz, um dieses Problem zu lösen? Das Umbenennen meiner Action-Klasse ist keine akzeptable Lösung, da es sich um einen ziemlich häufigen Domänennamen handelt und nicht um etwas Besonderes wie z.B. Math, usw.
Code Beispiel:
using System;
...
namespace ProjectName.Engine {
using ProjectName.Common;
class SomeClass {
private Action action;
...
}
}
Vielleicht kennt jemand ein Rezept für solche Namenskonflikte ...