2010-03-19 2 views
8

Utilizzando importazione aliasing in un file/di classe, siamo in grado di fare riferimento namespace libreria di classi assegnando il nostro alias personalizzato come questo:globale di importazione/usando Aliasing in .NET

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

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

E poi siamo in grado di fare riferimento alla classi all'interno di Company.Lib.Data.Objects utilizzando l'alias Db che abbiamo assegnato.

È possibile farlo a livello globale in modo che l'alias venga applicato all'intera soluzione anziché solo un file/classe?

Attualmente stiamo lavorando con le applicazioni Web, quindi speravo di poter aggiungere qualcosa a web.config, ma mi interessa anche se ciò sia possibile con i moduli di Windows, le app della console e/o le librerie di classi .

+1

Nel caso ti stia chiedendo, la libreria di classe in questione ha qualche nomignolo ambiguo di classi, e questo ha causato alcuni fastidi a noi. Quindi, in sostanza, vogliamo dividerlo in tre sezioni usando Import aliasing. E vogliamo farlo a livello globale, anziché aggiungerlo a tutti i file. Se c'è un modo migliore, sono tutto orecchie! –

risposta

17

Sì, questo è uno scenario supportato nei progetti VB.Net. Il modo per farlo è la seguente

  • tasto destro del mouse sul progetto in Solution Explorer e selezionare Proprietà
  • Vai alla scheda Riferimenti
  • Nella "importate namespace" Tipo di campo "Db = Company.Lib .Data.Objects"
  • Hit 'Aggiungi Importa utente'

Questo creerà l'alias per tutti i file del progetto.

Questo tuttavia non funziona nei progetti C#. C# come lingua non ha il concetto di utilizzo/importazione globale. Invece li supporta solo a livello di file.

+0

+1 - risposta approfondita. –

+1

Fantastico! Usiamo esclusivamente VB.NET (non ridere!), Quindi va bene. Ma funziona in "Siti Web" o solo in "Progetti"? –

+1

@Josh la maggior parte del mio lavoro consiste nel lavorare sull'IDE VB.Net quindi non ridere qui. Questo funzionerà solo su applicazioni web. Non credo che funzionerà per i siti web in quanto non hanno la nozione di una build globale. – JaredPar

2

Nel file web.config per il tuo sito - o il file app.config più probabile per un progetto (non confermata)

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

tutto ciò che si mette in questa sezione dovrebbe essere un sostituto valido per le importazioni clausola sulla parte superiore del codice dietro le pagine. Ho fatto miracoli per me, fammi sapere se ti aiuta

+0

Ma ho bisogno di aliasing ... la domanda ha già avuto risposta, ma grazie comunque –

+1

@JoshStodola Per inciso, ho fatto alcuni test e questa tecnica può funzionare con alias - _vis-à-vis_: ''. –

+0

Funziona anche in C#? Dovrò provarlo! –