سؤال

هل هناك بناء في الطريق في C# إلى العمل مع بسيطة التكوين الملفات التي أكلت لا XML ؟ أو ربما هناك شعبية حرة المكتبات ؟

أنا صنع أداة بسيطة لغير المبرمجين استخدام و أنا لا أريد أن أعقد من ذلك عن طريق إضافة واجهة المستخدم التكوين التحرير.أريد فقط من المستخدمين (كل مريحة بما فيه الكفاية مع أجهزة الكمبيوتر) أن تكون قادرة على فتح ملف في المفكرة و تحرير/إضافة بضعة أسطر.هذا هو السبب في أنني لا أريد أن استخدام XML based config.


تحرير:شكرا للجميع على الردود!نعم ، ليس من الصعب ربط واجهة المستخدم بسيطة لتحرير xml based config.ولكنها ليست دائما مناسبة.على سبيل المثال غير واجهة التطبيق أو التطبيق بسيط جدا كنت لا ترغب في إضافة المزيد من واجهة المستخدم للحفاظ على الحد الأقصى بسيطة.و ليس من الصعب حتى أن الكتابة الخاصة التكوين اللغوي, الرئيسية/زوج إعدادات أو كتل أو إعدادات مفصولة سطر فارغ.ولكن أردت فقط أن أعرف ما هو هناك المتاحة ، كما بحث سريع على جوجل فقط يعطيني الكثير من الصفحات على العمل مع xml based config.

أنا لست بدوام كامل sw المطور ، وعادة ما تكتب الأدوات الصغيرة التي تجعل بلدي الزملاء حياتي قليلا إزر في العمل ، وذلك باستخدام معروفة واختبار الحلول ، بطبيعة الحال ، على تبسيط هذه المهمة.

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

المحلول

وعادة ما تستخدم ملفات INI لتكوين بسيط. هناك على مشروع قانون الذي يوفر مجمع لWindows الأصلي وظائف INI في KERNEL32.

نصائح أخرى

يمكنك محاولة مكتبة كتبت يسمى DotNet.التكوين.

ويستخدم بسيط يستند إلى نص ملفات التكوين.

التكوين يتم الاحتفاظ في 'config.خصائص الملف الذي يبدو مثل هذا:

size=12
dateTime=1/12/2014
name=Terry Tester
color=Blue

items.A=hello list
items.B=guten tag list
items.C=bonjour list

numbers.X=10
numbers.Y=20
numbers.Z=30

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

أو يمكنك ببساطة انتزاع الإعداد مع دعوة إلى:

AppSettings.استرداد["mySetting"]

يمكنك العثور على سبيل المثال هنا.

يمكنك الحصول على نسخة من هنا: https://github.com/jknight/DotNet.Config

وأنا أحب نيني، الذي يبسط باستخدام XML لملفات التكوين، ولكن يمكنك أيضا استخدامه لملفات INI.

http://nini.sourceforge.net/

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

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

واحدة من أدوات خارجية يمكنني استخدام لديه ملف التكوين الأوساخ بسيط. وهو بسيط، ملف نصي حرة الشكل الذي يحتوي على النموذج:

keyword [args]

وتتوقع كل سطر لبدء مع الكلمة وأي شيء بعد ذلك على خط تؤخذ ببساطة كوسائط إلى الكلمة. أنه ليس لديه فكرة أزواج مفتاح / قيمة كما وسائط - أشبه يسرد فقط. المساحات هي المحدد لهذا الملف التكوين. قد لا تعمل من أجل كل التنفيذ، لكنه يعمل واحد لذلك.

والتجليد واضح وصريح جدا، والقراءة / الكتابة ملف XML من عنصر تحكم الشبكة المربوطة التي يمكن للمستخدم الاستفادة كمحرر، وبالتأكيد يقضي على كثير من القضايا التنسيق التي تنشأ من مجرد "فتحه في المفكرة" الحل.

إذا قاعدة المستخدم الخاص بك هو الدهاء جدا ولكن ليس فقط للمطورين، وربما الحل الغير مشفرة سيكون كافيا. كما يقول لي زميل في كثير من الأحيان - لا حاجة لوضع 100 $ في عرض $ 2. ومن الواضح، أنه سوف تعتمد على موقفك.

هل يمكن استخدام YAML، ولكن # مكتبات C المتاحة هي غير ناضجة إلى حد ما. YAML هو مجموعة فرعية لمن JSON، والتي يمكن استخدامها فقط كذلك أن بدلا من ذلك، لديها مجموعة واسعة من موزعي المتاحة، بما في ذلك هذا واحد: <لأ href = "http://www.codeplex.com/Json" يختلط = "noreferrer نوفولو"> http://www.codeplex.com/Json ، التي لديها LINQ إلى دعم JSON.

وأنا مجرد عادة ربط التكوين إلى تحكم الشبكة أو أيا كان والسماح لهم تحرير التكوين داخل التطبيق. ليس كثيرا UI تشارك اذا واصلتم كل شيء كما تسمية أساسا / أزواج قيمة.

Win32 API لديها عدد قليل من الوظائف المفيدة التي يمكن استدعاؤها بسهولة عبر P/الاحتجاج:

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

وأما بالنسبة للإنقاذ في شكل INI، يمكنك استخدام، كما اقترح إجابات أخرى، نيني أو < وأ href = "http://www.codeproject.com/KB/cs/cs_ini.aspx" يختلط = "نوفولو noreferrer"> مجمع لوظائف ويندوز INI الأم في KERNEL32 . ومع ذلك، إذا كنت تريد الذهاب لاتخاذ نهج محرر مدمج، يمكنك بسهولة استخدام XML بدلا من ذلك. المدمج في وظائف XML الإطار الصافي هي بسيطة جدا للاستخدام.

والآن، في حين أشعر بقوة أن السماح للمستخدمين لتحرير ملفات التكوين يدويا هو لا لا، في بعض الحالات، قد يكون الحل الأفضل، إذا نقول مجموعة المستخدمين صغيرة وسيتم الجميع تدريب على وجه التحديد كيفية تعديل الملفات. إذا كنت تريد أن تأخذ هذا النهج، وأوصي ملفات INI، كما انهم بسيط جدا لتعديل يدويا، وقراءة وتحليل، والكتابة. يجب أن تحاول اثنين <لأ href = "http://www.codeproject.com/KB/cs /cs_ini.aspx "يختلط =" نوفولو noreferrer "> المكتبات التي ذكرتها أعلاه لذلك.

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

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