2010-04-09 16 views
0

Je voudrais rendre toutes mes variables publiques variables/méthodes/classes internes lors de la compilation de mon projet Visual Studio. Le code source ne changera pas mais quand la bibliothèque compilée est faite, elle devrait avoir seulement l'accès interne. Est-ce possible?Puis-je rendre toutes les variables/méthodes/classes publiques internes dans Visual Studio au moment de la compilation?

J'ai "InternalsVisibleTo (" ClassLibrary ")" défini dans le fichier d'informations d'assemblage pour tous les projets, cependant, je ne voudrais pas exécuter un remplacer tous sur "public" à "interne". Est-ce que quelqu'un sait s'il y a loin autour de cela? Donc, quand je compile, construis mon projet, le projet de version autorise seulement l'accès interne.

Merci et une belle journée,

Joe

+4

Y a-t-il une raison particulière pour laquelle vous ne voulez pas simplement déclarer vos types et membres comme 'internal'? –

+0

Je ne comprends pas. Si chaque membre est 'internal', comment le code externe utilisera-t-il la bibliothèque? –

+0

En utilisant InternalsVisibleTo() dans le fichier d'informations d'assemblage. – Joe

Répondre

1

Je pense que vous avez mal compris l'utilisation de l'attribut InternalsVisibleTo. Il est utilisé pour autoriser le code dans un autre assembly pour accéder aux types et membres déclarés comme internal.

Disons que vous avez AssemblyA, dans lequel vous avez internal class SomeClass. Ensuite, vous avez AssemblyB. Le code dans AssemblyB ne peut pas utiliser SomeClass, puisqu'il est internal dans AssemblyA. Vous pouvez ensuite, dans AssemblyA, utiliser InternalsVisibleTo pour accorder l'accès à AssemblyB pour utiliser les types internal et les membres de AssemblyA.

Si vous voulez simplement rendre le code interne à AssemblyA, vous devrez déclarer les types en conséquence dès le début; il n'y a pas de raccourcis pour ça.

+0

Merci pour les commentaires. – Joe