Controle d'accessibilité d'une méthode / propriété

Résolu
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 - 11 sept. 2007 à 10:40
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 11 sept. 2007 à 14:05
Bonjour a tous !

Voila mon PB:

J'ai deux assembly :
Un pour l'accès aux données.
Un autre contenant les entités

La couche d'accès aux données communique via ces entités qui sont des objets composé uniquement de propriétés. Toutes les entités (Contact, Entreprise, Site....)héritent de la classe abstraite Entity. Cette classe abstratite Entity est composé par une prorpriété ID.

Je voudrais que la prorpriété ID de la classe Entity soit accessible :
- En lecture pour tout le monde donc Public
- En ecriture uniquement pas l'assembly d'accès aux données.

Mon problême est donc de ne permettre l'accès a cette propriété en ecriture pour un assembly ou un type (genre classe abstraite ou interface).

Après avoir retourné le web, je sèche complet .

Merci pour vos réponse

@+

Nico

5 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
11 sept. 2007 à 11:10
ah ok...
dans ce cas... y a pas grand chose à faire malheureusement. Tu ne peux pas "filtrer" par le type de l'appelant.

Par contre, tu peux faire en sorte que ta classe d'acces aux données (abstract, interface... provider) soit dans la même assembly que ton entity... et dans ce cas, ton internal fonctionnera.
En tout cas, c'est à tester.

Séb

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
11 sept. 2007 à 10:45
si tu es en .net 2.0, tu peux faire ceci :

private int id;
public int Id {
   get {return this.id;}
   internal set {this.id = value;}
}

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 3
11 sept. 2007 à 10:54
Merci pour ta réponse rapide (ca fait 5 minuite que j'ai posé la question :D )

En fait, internal ne rend accessible le membre que dans le meme assembly

Dans mon cas la propriété ID est dans l'assembly entité, les classes qui doivent pouvoir y écrire sont dans un autre assembly prédéfini

Une autre idée ?

Nico
0
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 3
11 sept. 2007 à 11:31
C'est bien ce que je craignais c'est un problême de conception.

Bon je vais revoir ça alors

Merci

Nico
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
11 sept. 2007 à 14:05
Salut, fais une recherche sur l'attribut InternalsVisibleToAttribute .
0
Rejoignez-nous