2010-03-19 9 views
8

Mit Import Aliasing in einer Datei/Klasse verwenden, können wir Klassenbibliothek Namespace Referenz von unserem eigenen benutzerdefinierten Alias ​​wie folgt zuweisen:Globaler Import/Aliasing in .NET

' VB 
Imports Db = Company.Lib.Data.Objects 

// C# 
using Db = Company.Lib.Data.Objects; 

Und dann sind wir in der Lage die referenzieren Klassen innerhalb von Company.Lib.Data.Objects mit dem Db Alias, den wir zugewiesen haben.

Ist es möglich, dies auf globaler Ebene zu tun, so dass der Alias ​​auf die gesamte Lösung statt nur einer Datei/Klasse angewendet wird?

Momentan arbeiten wir mit Webanwendungen, also hoffte ich, dass wir etwas zu web.config hinzufügen könnten, aber ich bin auch daran interessiert, ob das mit Windows Forms, Konsolenanwendungen und/oder Klassenbibliotheken möglich ist .

+1

Falls Sie sich wundern, hat die betreffende Klassenbibliothek einige mehrdeutige Benennung von Klassen, und dies hat einige Ärgernisse für uns verursachen. Daher möchten wir es im Wesentlichen in drei Abschnitte aufteilen, indem wir das Import-Aliasing verwenden. Und wir wollen es auf globaler Ebene tun, anstatt es zu jeder Datei hinzuzufügen. Wenn es einen besseren Weg gibt, bin ich ganz Ohr! –

Antwort

17

Ja, dies ist ein unterstütztes Szenario in VB.Net-Projekten. Die Art und Weise, dies zu tun, ist die folgende

  • rechts in Projektmappen-Explorer auf das Projekt klicken und wählen Sie Eigenschaften
  • Gehen Sie auf die Registerkarte Verweise
  • Im „Imported Namespaces“ Feldtyp „Db = Company.Lib .Data.Objects“
  • Hit "Benutzer hinzufügen Import"

das in dem Projekt den Alias ​​für alle Dateien eingerichtet wird.

Dies funktioniert jedoch nicht in C# -Projekten. C# als Sprache hat nicht das Konzept einer globalen Verwendung/Import. Stattdessen werden sie nur auf Dateiebene unterstützt.

+0

+1 - gründliche Antwort. –

+1

Super! Wir verwenden ausschließlich VB.NET (lacht nicht!), Das ist in Ordnung. Aber funktioniert das in "Websites" oder nur "Projekte"? –

+1

@Josh die meiste meiner Arbeit beinhaltet die Arbeit an der VB.Net IDE so lacht hier nicht. Dies funktioniert jedoch nur in Webanwendungen. Ich glaube nicht, dass es für Websites funktionieren wird, da sie nicht die Idee eines globalen Builds haben. – JaredPar

2

In Ihrer web.config-Datei für Ihre Website - oder höchstwahrscheinlich app.config-Datei für ein Projekt (nicht bestätigt)

<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"> 
     <namespaces> 
      <clear/> 
      <add namespace="System"/> 
      <add namespace="System.Collections"/> 
      <add namespace="System.Collections.Specialized"/> 
      <add namespace="System.Configuration"/> 

alles, was Sie in diesem Abschnitt stellen soll ein gültiger Ersatz für die Einfuhr sein Klausel oben auf Ihrem Code hinter den Seiten. Wunder für mich, lassen Sie mich wissen, wenn es Ihnen hilft

+0

Aber ich brauche Aliasing ... Frage wurde bereits beantwortet, aber trotzdem danke –

+1

@JoshStodola Übrigens habe ich einige Tests und diese Technik kann mit Aliasen arbeiten - _vis-à-vis_: ''. –

+0

Funktioniert das auch in C#? Ich muss es ausprobieren! –