2010-04-22 13 views
11

Una pregunta trivial quizás, pero estoy interesado en las respuestas. Actualmente estoy refacturando algunos archivos de recursos de cadenas monolíticas muy grandes (un archivo de recursos de contenedor por proyecto, en aproximadamente 30 proyectos). Los estoy dividiendo de forma tal que seguimos una convención para nuestros archivos y hacemos que las cadenas sean más fáciles de encontrar y administrar cuando se codifica.Esquema de archivos de recursos de nombres de cadena y administración

En general estoy dividiendo los archivos en este esquema:

  • ErrorMessages.resx
  • LogMessages.resx
  • ViewResources.resx
  • AppResources.resx

I' No estoy terriblemente emocionado con el nombramiento, y me pregunto qué usan otras personas. Por ejemplo, en lugar de AppResources (cadenas para uso interno de la aplicación), he visto un montón de proyectos de demostración utilizar StringResources, Internal (terrible!), Etc.

Ideas/anécdotas y/o sugerencias sobre la gestión de los recursos o norma los esquemas de nombramiento son apreciados.

Respuesta

14

lo general estructuro mis recursos como esto:

El primer archivo de recursos es utilizada por toda la aplicación (por ejemplo Project.Core) y que incluye todo tipo de cadenas comunes ampliamente utilizados. En realidad no hay ninguna diferencia entre los errores/excepciones y registro:

  • CommonResources.resx
    modificador de acceso: Público
    • Error_Context
      por ejemplo, Error_ArgumentCannotBeNull
    • Warn_Context
      e.g. Warn_ApplicationSettingNotFoundUseDefault
    • Info_Context
      e.g. Info_UpdateAvailable
    • Validation_Context
      e.g. Validation_EmailNotValid

El segundo archivo de recursos es utilizada por la capa de presentación y contiene todo tipo de cadenas de la IU. La denominación puede variar de un proyecto a otro, pero en general parece que el siguiente esquema:

  • PresentationResources.resx
    acceso modificador: Interno
    • Common_Context
      por ejemplo, Common_Yes
    • Section/Controller_Window/View_Context
      e.g.Help_FAQ_HeadlineHowToUseResources o Help_FAQ_TextHowToUseResources

Finalmente cada proyecto/montaje tenga también un archivo de recursos internos para el error/Advertir recursos/validación/Info que son demasiado específicas para ir en el archivo CommonResources.resx. Tengo que admitir, que en su mayoría un nombre a este archivo de recursos InternalResources.cs;)

  • InternalResources.resx
    modificador de acceso: Interno
    • Classname_Error_Context
      por ejemplo, BCrypt_Error_InvalidSaltRevision
    • Classname_Warn_Context
    • Classname_Info_Context
    • Classname_Validation_Context
Cuestiones relacionadas