سؤال

لدي "ملف الإعدادات" في Winforms تطبيق يسمى الإعدادات.الإعدادات مع فئة جزئية مخصصة الطرق ، وما إلى ذلك.هل هناك طريقة تحميل / حفظ إعدادات ديناميكية استنادا إلى التعسفي المفاتيح ؟

على سبيل المثال لدي بعض ListViews في التطبيق الذي تريد حفظ / تحميل العمود الاعراض.بدلا من إنشاء عرض الإعداد لكل عمود لكل عرض القائمة أود طريقة بسيطة لتحميل / حفظ الاعراض تلقائيا.

أدناه هو مثال حفظ طريقة حاولت:

internal sealed partial class Settings
{
    public void SetListViewColumnWidths(ListView listView)
    {
        String baseKey = listView.Name;
        foreach (ColumnHeader h in listView.Columns)
        {
            String key = String.Format("{0}-{1}", baseKey, h.Index);
            this[key] = h.Width;
        }
    }
}

عند تشغيل هذا الرمز أحصل على خطأ "إعدادات الخاصية 'TestsListView-0' لم يتم العثور على." هل هناك شيء أنا في عداد المفقودين ؟

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

المحلول

متجر الخاص بك عرض العمود الإعدادات في ملف Xml تسلسل كائن.أي شيء أن تنفذ IXmlSerializable ثم خلق بيئة واحدة دخول من هذا النوع في الإعدادات.الإعدادات.

خيار جيد ربما يكون Xml تسلسل القاموس.سريع البحث جوجل وجدت عدد غير قليل من مختلف بلوق وظائف التي تصف كيفية تنفيذ ذلك.

كما ورد في إجابات أخرى سوف تحتاج إلى التأكد من أن هذا الكائن هو إعداد المستخدم.قد تحتاج أيضا إلى تهيئة الإعداد سبيل المثال.أي إنشاء XmlSerializableDictionary() على سبيل المثال و تعيين إلى الإعداد إذا كان الإعداد باطل.إعدادات النظام الفرعي لا يخلق الافتراضي الحالات المعقدة وضع الكائنات.

أيضا, إذا كنت تريد هذه الإعدادات مستمرة بين الجمعية إصدارات (أي تكون قابلة للتحديث) سوف تحتاج إلى ترقية إعدادات بدء تشغيل التطبيق.هذا هو وصفها في التفاصيل ميها Markič هو بلوق ، Raghavendra برابو هو بلوق.

نصائح أخرى

أعتقد الخطأ

إعدادات الخاصية 'مفتاح' لم يتم العثور على.

تحدث هذه المشكلة نظرا لأن 'مفتاح' لا توجد قيمة في ملف الإعدادات (واضح).

بقدر ما أنا على علم ، لا يمكنك إضافة إعدادات القيم برمجيا, قد تحتاج إلى التحقيق فيها إضافة جميع الإعدادات التي تحتاج إلى ملف بعد كل شيء, على الرغم من مرة واحدة هم هناك, أعتقد أنك سوف تكون قادرة على استخدام هذا النوع من التعليمات البرمجية التي قمت بالنظر إلى حفظ التغييرات.

حفظ التغييرات, سوف تحتاج إلى التأكد من أنهم 'المستخدم' إعدادات, لا 'تطبيق'.

إعدادات الملف هو بسيط جدا XML, لذلك قد تكون قادرة على مهاجمة المشكلة عن طريق كتابة XML مباشرة إلى الملف ولكن لم أفعل ذلك, لذلك لا يمكن التأكد من انها تعمل أو بالضرورة يوصي هذا النهج.

http://msdn.microsoft.com/en-us/library/cftf714c.aspx هو MSDN الرابط لتبدأ.

يمكنك أن تفعل إعدادات.حفظ() أو مماثلة على إعدادات المستخدم ، ولكن لاحظ أن هذه الإعدادات لن تحصل على قائمة إلى xxx.exe.config في الدليل كما كنت تتوقع.أنها تذهب في الواقع في مكان عميق داخل مجلد المستخدم (البحث في محرك xxx.exe.التكوين للعثور عليه).في المرة التالية التي يمكنك يدويا تغيير xxx.exe.التكوين في التطبيق الخاص بك دليل على تغيير في ظروف غامضة لا تنطبق (النظام لا يزال يستخدم أنقذ واحد من دليل المستخدم).

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