سؤال

أحاول التغيير في وقت التشغيل مفتاح واحد من ملف إعدادات التطبيقات الخاصة بي، لكنه لا يعمل.

أفعل بهذه الطريقة:

ConfigurationSettings.AppSettings["XPTO"] = "HELLO";

يبدو أنه يتغير فقط في الذاكرة، وليس على الملف.

هل يعرف أحد كيفية القيام بذلك؟

شكرا.

هل كانت مفيدة؟

المحلول

إلقاء نظرة على بلدي نظرة عامة على ملفات الإعدادات .NET... باختصار، أعتقد أنك تريد إعداد استبدال المستخدم. سوف تتصرف أكثر مما تتوقع.

يحرر: إذا كنت تستخدم مصمم الإعدادات في Visual Studio, ، ثم قم ببساطة بتغيير "النطاق" إلى "المستخدم". إذا لم يكن الأمر كذلك، يجب أن تكون قادرا على القيام بالكثافة برمجيا.

نصائح أخرى

ملف appsettings غير مصمم ليكون قابل للكتابة. وهي مصممة لتخزين التكوينات التي لن تتغير في وقت التشغيل ولكن قد تتغير مع مرور الوقت IE: سلاسل اتصال DB، عنوان URL لخدمة الويب، إلخ.

لذلك، في حين أنه قد يكون من الممكن تحديث الملف في الواقع، يجب عليك إعادة فهم إذا تم تخزين هذه القيمة هناك.

على افتراض أن التطبيق الخاص بك لديه أذونات الكتابة على الملف ...



    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  // the config that applies to all users
    AppSettingsSection appSettings = config.AppSettings;

    if (appSettings.IsReadOnly() == false)
    {
        appSettings("Key").Value = "new value";

        config.Save();
    }

أنا أتجاهل كل الاستثناءات المحتملة التي يمكن إلقاؤها ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top