2010-01-11 25 views
7

Tenemos un Res1.resx y tiene un archivo1.doc. Más tarde nos gustaría reemplazar file1.doc con file2.doc en el archivo resx basado en la regla de negocios. Cómo lograr esto Gracias NActualice dinámicamente un archivo de recursos

+1

¿Reemplazar mediante programación el contenido de un archivo de recursos después de compilar el proyecto? Es eso lo que necesita? – Codesleuth

+2

¡Espera un momento! Una regla de negocios que afecta un archivo de recursos? ¿Qué quieres decir? –

+1

:: Reemplazar mediante programación el contenido de un archivo de recursos después de compilar :: el proyecto? Sí. –

Respuesta

2

Lo sentimos, no creo que que esto podría ser posible

1

Claro que se puede hacer eso. Aquí hay un poco de código que usamos. Por favor, hágamelo saber si necesita más detalles.

/// <summary> 
/// Sets or replaces the ResourceDictionary by dynamically loading 
/// a Localization ResourceDictionary from the file path passed in. 
/// </summary> 
/// <param name="resourceDictionaryFile">The resource dictionary to use to set/replace 
/// the ResourceDictionary.</param> 
private void SetCultureResourceDictionary(String resourceDictionaryFile) 
{ 
    // Scan all resource dictionaries and remove, if it is string resource distionary 
    for (int index= 0; index < Resources.MergedDictionaries.Count; ++index) 
    { 
     // Look for an indicator in the resource file that indicates that this 
     // is a dynamic file that should be removed before loading its replacement. 
     if (Resources.MergedDictionaries[index].Contains("ResourceDictionaryName")) 
     { 
      if (File.Exists(resourceDictionaryFile)) 
      { 
       Resources.MergedDictionaries.Remove(Resources.MergedDictionaries[index]); 
      } 
     } 
    } 

    // read required resource file to resource dictionary and add to MergedDictionaries collection 
    ResourceDictionary newResourceDictionary = new ResourceDictionary(); 
    newResourceDictionary.Source = new Uri(resourceDictionaryFile); 
    Resources.MergedDictionaries.Add(newResourceDictionary); 
} 
2

Si usted está tratando de modificar el recurso compilado en tiempo de ejecución, no creo que es posible, al menos no sin cortes feos. De todos modos, no tiene sentido: si se trata de un recurso, no debe modificarse; y si necesita ser modificado, no debería ser un recurso.

Cuestiones relacionadas