مخططات تسمية الموارد المورد والإدارة
-
01-10-2019 - |
سؤال
ربما يكون سؤال تافهة ، لكنني مهتم بالإجابات. أقوم حاليًا بإعادة تمثيل بعض ملفات موارد سلسلة متجانسة كبيرة جدًا (ملف مورد واحد لكل مشروع ، في حوالي 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