سؤال

ربما يكون سؤال تافهة ، لكنني مهتم بالإجابات. أقوم حاليًا بإعادة تمثيل بعض ملفات موارد سلسلة متجانسة كبيرة جدًا (ملف مورد واحد لكل مشروع ، في حوالي 30 مشروعًا). أنا أقسم لهم بحيث نتبع اتفاقية لملفاتنا ونجعل السلاسل أسهل في العثور عليها وإدارتها عند الترميز.

عمومًا أقوم بتقسيم الملفات إلى هذا المخطط:

  • errormessages.resx
  • logMessages.Resx
  • ViewResources.Resx
  • appresources.resx

أنا لست سعيدًا بشكل رهيب بالتسمية ، وأنا أتساءل فقط عما يستخدمه الآخرون. على سبيل المثال ، بدلاً من AppResources (سلاسل للاستخدام الداخلي من قبل التطبيق) ، رأيت الكثير من استخدام المشاريع التجريبية StringResources, Internal (فظيع!) ، إلخ.

يتم تقدير الأفكار/الحكايات/الاقتراحات بشأن إدارة الموارد أو مخططات التسمية القياسية.

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

المحلول

أنا عمومًا هيكل مواردي مثل هذا:

يتم استخدام ملف المورد الأول بواسطة التطبيق بأكمله (على سبيل المثال Project.Core) وتشمل جميع أنواع السلاسل الشائعة المستخدمة على نطاق واسع. أنا في الواقع لا تحدث أي فرق بين الأخطاء/الاستثناءات وتسجيلها:

  • CommonResources.resx
    معدل الوصول: عام
    • Error_Context
      على سبيل المثال Error_ArgumentCannotBeNull
    • Warn_Context
      على سبيل المثال Warn_ApplicationSettingNotFoundUseDefault
    • Info_Context
      على سبيل المثال Info_UpdateAvailable
    • Validation_Context
      على سبيل المثال Validation_EmailNotValid

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

  • PresentationResources.resx
    معدل الوصول: داخلي
    • Common_Context
      على سبيل المثال Common_Yes
    • Section/Controller_Window/View_Context
      على سبيل المثال Help_FAQ_HeadlineHowToUseResources أو Help_FAQ_TextHowToUseResources

أخيرًا ، يحتوي كل مشروع/تجميع أيضًا على ملف موارد داخلي للخطأ/تحذير/معلومات/التحقق من الصحة التي تكون محددة للغاية للذهاب في CommonResources.resx ملف. لا بد لي من الاعتراف بأنني في الغالب أسمي ملف المورد هذا InternalResources.cs ;)

  • InternalResources.resx
    معدل الوصول: داخلي
    • Classname_Error_Context
      على سبيل المثال BCrypt_Error_InvalidSaltRevision
    • Classname_Warn_Context
    • Classname_Info_Context
    • Classname_Validation_Context
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top