2008-12-21 7 views
3

J'ai peu de fichiers dans les ressources (fichiers xsd) que j'utilise pour valider les messages xml reçus. Le fichier de ressources que j'utilise s'appelle AppResources.resx et il contient un fichier appelé clientModels.xsd. Lorsque j'essaie d'utiliser le fichier comme ceci: AppResources.clientModels, j'obtiens une chaîne avec le contenu du fichier. Je voudrais obtenir un flux à la place. Je ne souhaite pas utiliser assembly.GetManifestResourceStream car j'ai eu de mauvaises expériences avec lui (l'utilisation de ces flux pour archiver des fichiers avec SharpZipLib n'a pas fonctionné pour une raison quelconque). y a-t-il un autre moyen de le faire? J'ai entendu parler de ResourceManager - est-ce quelque chose qui pourrait m'aider?comment obtenir un fichier à partir de ressources en tant que flux? (.net)

Répondre

3

Pourriez-vous nourrir la chaîne que vous obtenez dans un System.IO.StringReader, peut-être? Cela peut faire ce que vous voulez. Vous pouvez également vérifier MemoryStream.

1

est ici le code du lien

//Namespace reference 
using System; 
using System.Resources; 


#region ReadResourceFile 
/// <summary> 
/// method for reading a value from a resource file 
/// (.resx file) 
/// </summary> 
/// <param name="file">file to read from</param> 
/// <param name="key">key to get the value for</param> 
/// <returns>a string value</returns> 
public string ReadResourceValue(string file, string key) 
{ 
    //value for our return value 
    string resourceValue = string.Empty; 
    try 
    { 
     // specify your resource file name 
     string resourceFile = file; 
     // get the path of your file 
     string filePath = System.AppDomain.CurrentDomain.BaseDirectory.ToString(); 
     // create a resource manager for reading from 
     //the resx file 
     ResourceManager resourceManager = ResourceManager.CreateFileBasedResourceManager(resourceFile, filePath, null); 
     // retrieve the value of the specified key 
     resourceValue = resourceManager.GetString(key); 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
     resourceValue = string.Empty; 
    } 
    return resourceValue; 
} 
#endregion 

Je ne pas écrire le code, il est venu de

http://www.dreamincode.net/code/snippet1683.htm

HTH

os

1

J'ai un zip fichier chargé en tant que ressource, et en le référençant directement de l'espace de noms me donne des octets, pas une chaîne. Cliquez avec le bouton droit sur votre fichier dans le concepteur de ressources et modifiez le type de fichier du texte en binaire. Ensuite, vous obtiendrez un bytearray, que vous pouvez charger dans un MemoryStream.

Questions connexes