Beschränken des Zugriffs auf einen öffentlichen Setter auf bestimmte Objekte (C #)

Ich versuche, eine Klasse (in C #) zu erstellen, die als Umgebung für meine Anwendung dient.

Ich versuche, die Klasse dynamisch zu gestalten und sie als Parameter an Entitäten in meiner Anwendung zu senden. Das Problem ist, dass ich in der Lage sein möchte, die Eigenschaften dieser Umgebungsklasse (öffentliche Setter) zu ändern, aber gleichzeitig möchte ich, dass die Klassen, die die Umgebung erhalten, diese Setter nicht verwenden können.

Ich finde anscheinend keinen guten Weg, meine Frage zu formulieren (was meiner Meinung nach ein Teil des Grundes ist, warum ich so etwas bei Google oder msdn nicht finde), aber um es kurz zu machen:Ich möchte eine Klasse mit Setzern erstellen, die nur für einige meiner Objekte und nicht für alle öffentlich sind..

Ich amüsiere mich momentan über die folgende Idee: Vermeide alle öffentlichen Setter zusammen und mache die privaten Felder mit der Ereignisregistrierung sichtbar.

Die Klasse registriert Ereignisse in einem neuen dritten Objekt (das als Parameter an den Konstruktor gesendet wird). Die Methoden, die von der Umgebung registriert werden, sind nicht viel mehr als Setter. Das Auslösen dieser Ereignisse ermöglicht daher den Zugriff auf die privaten Felder.

Ich würde gerne ein paar Ideen haben (da ich das Gefühl habe, dass meine nicht so toll sind), oder besser noch einige Muster, die ich verwenden könnte.

Danke im Vorau

Antworten auf die Frage(12)

Ihre Antwort auf die Frage