Bonjour,
J'ai une classe Parent et une classe Child.
Parent contient une propriété Childs qui est une collection de Child.
Child contient une référence à Parent.
J'aimerais que l'utilisateur ne puisse ajouter des Child à Childs que en passant par la classe Parent. J'ai donc écris ceci :
Le problème est que n'importe quel classe de l'assembly peut modifier la propriété Parent de la classe Child alors que seulement la classe Parent devrait pouvoir le faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public class Parent { private List<Child> _ChildList = new List<Child>(); public IEnumerable<Child> ChildList { get { return _ChildList; } } public void AddChild(Child c) { c.Parent = this; _ChildList.Add(c); } } public class Child { public Parent Parent { get; internal set; } }
De plus, on peut modifier la propriété Childs sans passer par AddChild() en castant celle en List<Child>.
Y a t-il des solutions à ces problèmes ? Un design pattern ou autre ?
Merci d'avance.
Partager