2009-06-04 9 views
3

Existe-t-il un moyen de référencer globalement un espace de noms dans l'ensemble de la solution?Référencement des espaces de noms globalement?

Ainsi, au lieu d'avoir ces lignes dans chaque fichier de code:

using System; 
using MyNamespace; 

avoir à les déclarer qu'une seule fois, et chaque fichier de code serait de les utiliser.

Btw J'utilise Visual Studio.

Répondre

6

Non, C# n'a pas ce concept. Chaque fichier source est indépendant à cet égard. (Et si les directives using sont dans une déclaration d'espace de noms, celles-ci sont indépendantes des autres directives d'utilisation dans les déclarations d'espace de noms homologues.)

Vous n'avez pas besoin de ReSharper pour changer quoi est inclus dans une nouvelle classe si. Vous pouvez utiliser le Visual Studio templates.

EDIT: Juste pour clarifier le point sur l'utilisation de directives dans les espaces de noms, supposons que nous avions (dans un seul fichier):

using Foo; 

namespace X 
{ 
    using Bar; 
    // Foo and Bar are searched for code in here, but not Baz 
} 

namespace Y 
{ 
    using Baz; 
    // Foo and Baz are searched for code in here, but not Bar 
} 

Habituellement je n'ai qu'une déclaration d'espace de noms dans un fichier, et mettre tout l'utilisation de directives avant lui.

+0

Vous êtes incroyable. Chaque fois que je vois (ou poste) une réponse qui m'a l'air complète et finale, vous trouvez quelque chose de mieux :) –

+0

Merci Jon. Dans votre troisième phrase voulez-vous dire, si vous avez une déclaration d'espace de noms dans un autre espace de noms (CustomNS), et si vous utilisez le CustomNS, ces espaces de noms ne seraient pas inclus pour un fichier utilisant cet espace de noms? –

+0

Je vais modifier ma réponse pour élaborer. –

4

Non, ce n'est pas possible.

Si vous utilisez ReSharper, vous pouvez définir une option pour inclure des directives d'utilisation spécifiques dans chaque nouveau fichier que vous créez.

2

De ce SO question et de suivi blog post. Vous pouvez modifier les modèles par défaut de Visual Studio.

Pour ce faire, regardez le fichier dans ce zip: [Program Files] [Visual Studio] \ Common7 \ IDE \ ItemTemplates \ CSharp \ code \ 1033 \ Class.zip

et modifier le Class.cs fichier au besoin. En outre, Visual Studio peut avoir mis en cache ce fichier ici: [Program Files] [Visual Studio] \ Common7 \ IDE \ ItemTemplatesCache \ CSharp \ code \ 1033 \ Class.zip

0

Comme d'autres l'ont mentionné des modèles Visual Studio sont la manière aller.

Notez que simplement ajouter une instruction using à votre modèle ne garantit pas que le compilateur peut résoudre vos types. Donc, si vous ajoutez une instruction using pour MyNamespace dans chaque classe, vous devrez peut-être ajouter une référence d'assembly à votre projet. Voir le C# FAQ pour plus d'informations.

-2

Un truc qui me manque en tant que newb à CSharp est de regarder les "refences" (en VS), de faire un clic droit et "Ajouter une nouvelle référence". Ceci est particulièrement utile lors de la combinaison de plusieurs projets où j'ai fait une classe générique pour une réutilisation ailleurs.