حفظ خصائص عناصر النموذج في XML (حفظ حالة التحكم)

StackOverflow https://stackoverflow.com/questions/1445860

  •  22-07-2019
  •  | 
  •  

سؤال

لقد كنت أستخدم في بعض المشاريع مكتبة XML لحفظ إعداداتي، وكانت طريقة عملها كالتالي:

saveSettings(Control control, XmlConfig config, string controlName)

سيقوم بعد ذلك بالبحث في جميع عناصر التحكم داخل هذا العنصر (بشكل متكرر)، ويطلق على نفسه اسمًا في كل مرة يعثر فيها على عنصر تحكم جديد، وما إلى ذلك، ويحفظ جميع المعلومات الخاصة به في ملف xml مثل:

ومن ثم تحميلها مرة أخرى.

آخر مرة استخدمتها كانت في Framework 2، مؤخرًا كنت بحاجة إليها مرة أخرى، وأعدت استخدامها، فهي تحفظ ملف XML كالمعتاد، ولكن لا يبدو أنها تقوم بتحديث النماذج بعد تحميل ملف xml، ويبدو أنني لا أستطيع معرفة السبب، كل التعليمات البرمجية تبدو صحيحة.

هل يعرف أحد بديلاً جميلاً؟(يستخدم الإعداد الافتراضي، إعدادات التطبيق، أسلوبًا سيئًا بشكل واضح، ويعد أسلوب تحديد عنصر تحكم للحفظ أكثر بساطة ويعمل في كل مكان)

شكرا مقدما =)

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

المحلول

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

readonly ObjectSerializer _serializer;
public MyForm()
{
    _serializer = new ObjectSerializer(this,
        "Top", "Left", "Height", "Width",
        "_splitter.SplitterDistance");
    _serializer.ContinueOnError = true;
}

private void Form_Load(object sender, EventArgs e)
{
    _serializer.Deserialize(new CSharpTest.Net.Serialization.StorageClasses.UserSettingStorage());
}

void Form_Closing(object sender, FormClosingEventArgs e)
{
    _serializer.Serialize(new CSharpTest.Net.Serialization.StorageClasses.UserSettingStorage());
}

تم العثور على المكتبة المستخدمة "CSharpTest.Net.Library.dll" على:

http://code.google.com/p/csharptest-net

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