Ich habe einen Code geschrieben, der alle Elemente aus einem JSON liest, der die gesamte Konfiguration meiner Anwendung enthält. In diesem Code habe ich eine Eigenschaft namens obj
:Wie überwachen Sie die Änderung der Objekteigenschaften?
public static SuperModel obj
{
get
{
string json = File.ReadAllText(SettingsConfig.ConfigFilePath);
var jsonObj = JsonConvert.DeserializeObject<SuperModel>(json);
return jsonObj;
}
}
SuperModel
ist das Klassenmodell, das Beispiel anderer Klassen enthält. Was ich versuche, die json Wert zu erreichen, ist zu aktualisieren und dann eine andere Methode aufrufen, die die Datei mit dem neuen json überschreiben sollte, wie folgt aus:
Settings.obj.GeneralSettings.Language = "english";
Settings.Save();
Aber ich habe ein Problem, wie kann ich überwachen die Ändern Sie auf obj
, zum Beispiel in diesem Fall habe ich die Language
Eigenschaft von GeneralSettings
->SuperModel
Klasse aktualisiert, ist es möglich, das aktualisierte Objekt mit Save()
Methode zu speichern, die die Datei überschreiben? Ich habe nie eine ähnliche Situation erlebt.
Wie kann ich das lösen?
Sie müssen keine Änderungen erkennen, ob Sie das Objekt serialisiert gehst wieder in Datei: wenn es das gleiche, nichts (außer dem Datum der letzten Änderung der Datei) ändert, und wenn es anders, die Datei wird aktualisiert. Für welche _exactly_ benötigen Sie diese Funktionalität und was hat Ihre Recherche gezeigt? Siehe zum Beispiel [Was ist die beste Vorgehensweise, um zu überprüfen, ob ein Objekt geändert wird?] (Http://stackoverflow.com/questions/2071482/what-is-the-best-practice-to-check-if-an-object -ist geändert). – CodeCaster
@CodeCaster ich die JSON-Datei das aktualisierte Objekt in die Datei für die Aktualisierung übergeben müssen, ist das, warum ich ändern diese Frage – Unchained
prüfen erfassen müssen: http://stackoverflow.com/questions/2246777/raise-an-event-whenever -a-propertys-Wert-geändert – Bassie