file di risorse String schemi di denominazione e la gestione
-
01-10-2019 - |
Domanda
Una domanda banale forse, ma mi interessa le risposte. Attualmente sto refactoring alcuni file molto grandi risorse di stringa monolitico (file di risorse un cassonetto per progetto, in circa 30 progetti). Sono splitting loro in modo tale che seguiamo una convenzione per i nostri file e fare le corde più facili da trovare e gestire quando la codifica.
In generale Sono dividere i file in questo schema:
- ErrorMessages.resx
- LogMessages.resx
- ViewResources.resx
- AppResources.resx
Non sto terribilmente entusiasta con la nomina, e sto solo chiedendo cosa altre persone usano. Ad esempio, invece di AppResources
(stringhe per uso interno con l'applicazione), ho visto un sacco di demo progetti utilizzano StringResources
, Internal
(terribile!), Ecc.
idee / aneddoti / suggerimenti su gestione delle risorse o schemi di denominazione standard sono apprezzati.
Soluzione
Io in genere strutturare le mie risorse in questo modo:
Il primo file di risorse viene utilizzato da tutta l'applicazione (ad esempio Project.Core
) e include tutti i tipi di stringhe comuni ampiamente utilizzati. Io in realtà non fa alcuna differenza tra errori / eccezioni e registrazione:
-
CommonResources.resx
modificatore di accesso: Pubblico-
Error_Context
per esempio
Error_ArgumentCannotBeNull
-
Warn_Context
per esempio
Warn_ApplicationSettingNotFoundUseDefault
-
Info_Context
per esempio
Info_UpdateAvailable
-
Validation_Context
per esempio
Validation_EmailNotValid
-
Il secondo file di risorse viene utilizzato dal livello di presentazione e contiene tutti i tipi di stringhe UI. La denominazione può variare da progetto a progetto, ma in generale sembra che il seguente schema:
-
PresentationResources.resx
modificatore di accesso: interno-
Common_Context
per esempio
Common_Yes
-
Section/Controller_Window/View_Context
per esempio
Help_FAQ_HeadlineHowToUseResources
oHelp_FAQ_TextHowToUseResources
-
Infine ogni progetto / montaggio non anche avere un file di risorse interne per l'errore / warn / risorse Info / convalida che sono troppo specifiche per andare nel file CommonResources.resx
. Devo ammettere, che per lo più nomino questo file di risorse InternalResources.cs
;)
-
InternalResources.resx
modificatore di accesso: interno-
Classname_Error_Context
per esempio
BCrypt_Error_InvalidSaltRevision
-
Classname_Warn_Context
-
Classname_Info_Context
-
Classname_Validation_Context
-