Welchen Nutzen hat die Aliases-Eigenschaft von Assemblyverweisen in Visual Studio 8?
-
08-07-2019 - |
Frage
Wenn ich einem Projekt in Visual Studio 8 einen Assemblyverweis hinzufüge, wird die Aliases-Eigenschaft dieses Verweises auf „global“ gesetzt.Wofür ist diese Eigenschaft gut und warum ist sie auf „Global“ eingestellt?
MSDN sagt mir, dass dies eine Liste von Aliasnamen für die Assembly ist, aber nicht, warum ich diese Eigenschaft verwenden möchte oder warum die meisten den Alias „global“ haben.
Lösung
Dies gilt für „externe Aliase“.Angenommen, Sie möchten zwei verschiedene Typen verwenden, die beide aufgerufen werden Foo.Bar
(d. h. Bar
in einem Namensraum von Foo
).Die beiden Typen befinden sich (per Definition) in unterschiedlichen Assemblys. Sie verwenden die Eigenschaft in VS, um jeder Referenz einen Alias zuzuordnen. Anschließend können Sie Folgendes tun:
extern alias FirstAlias;
extern alias SecondAlias;
using FirstBar = FirstAlias::Foo.Bar;
using SecondBar = SecondAlias::Foo.Bar;
und dann verwenden FirstBar
Und SecondBar
in Ihrem Code.
Im Grunde handelt es sich also um eine zusätzliche Benennungsebene – und Sie sollten sie nur verwenden, wenn Sie es wirklich, wirklich müssen.Es wird viele Leute verwirren.Versuchen Sie, von vornherein zu vermeiden, in diese Situation zu geraten – aber seien Sie sich dieser Lösung bewusst, wenn Sie sie einfach nicht vermeiden können.
Andere Tipps
Suche nach „ extern alias "; es ist ein sehr selten genutztes Feature, das nur benötigt wird, zwischen zwei DLLs eindeutig zu machen, die die gleichen Typen (zum Beispiel zwei verschiedene Versionen derselben Baugruppe oder zwei Baugruppen, die eine Klasse, die einen vollqualifizierten Namen teilt) beitragen.
"global" ist die Standardeinstellung. Zum Beispiel, wenn Sie eine Klasse namens Foo.System
haben, können Sie eindeutig das Haupt System
Namespace über global::System
beziehen.