Erreur dans la msdn? [Résolu]

Signaler
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Salut,
Dans Msdn, ils disent que les assembly amis sont capables d'accéder aux types marqués internal, mais les types et membres marqués private restent inacessible; et ce au moyen de l'attribut InternalsVisibleTo.
The friend assemblies feature allows you to access internal members; private types and private members will remain inaccessible.

Or, après quelques tests, je me suis rendu compte que même les classes private sont accessibles!
C'est une erreur d'interprétation de ma part ou quoi?
Dans la description de la classe InternalsVisibleToAttribute, ils disent Specifies that all nonpublic types in an assembly are visible to another assembly.

Y'aurais pas un peu de contradiction??? visible implique que c'est accessible???
Etk, j'attends vos commentaires

[:D] @++

2 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
36
Salut..

"Or, après quelques tests, je me suis rendu compte que même les classes private sont accessibles"

Par défaut les classes sont internal, seules les classes imbriquées peuvent être private.

Dans le code suivant la méthode "Private" ne doit pas être accessible.

using System.Runtime.CompilerServices;


[ assembly:InternalsVisibleTo( "friends" ) ]


namespace Library
{
    public class ClassPublic
    {
        public void Public( )
        {
            MessageBox.Show( "Public" );
        }


        internal void Internal( )
        {
            MessageBox.Show( "Internal" );
        }


        private void Private( )
        {
            MessageBox.Show( "Private" );
        }
    }
}
Messages postés
303
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
24 avril 2009
5
peut-être doit on lire cela comme suit:

The friend assemblies feature allows you to access "internal members; private types" and private members will remain inaccessible.

Le ";" serait comme une sorte de "/" comme lors qu'on écrit je sais pas ... tous les gars/filles de ce college par exemple ....

Mais bon au premier coup d'oeil je lisais comme toi, et c'est peut-être bel et bien une erreur

Eric