2009-07-01 11 views
2

J'ai du mal à trouver un moyen facile de charger mes données de test en C#.Comment charger mes données de test en C#?

En Java, je charger une ressource en utilisant le code suivant:

... 

public static InputStream loadResource(String resource) throws LoadException { 
    InputStream is = TestUtils.class.getResourceAsStream(resource); 

    if (is == null) { 
     throw new LoadException("Error loading '" + resource + "'"); 
    } 

    return is; 
} 

... 

public static void main(String[] args) { 
    InputStream is = TestUtils.loadResource("/resourcelocation"); 
} 

J'ai essayé d'utiliser un fichier de ressources C#, mais je trouve difficile à charger et de le manipuler. Existe-t-il un moyen plus simple de charger des ressources en C#?

Répondre

9

Oui - utilisez Assembly.GetManifestResourceStream, par ex.

typeof(TestClass).Assembly 
       .GetManifestResourceStream("test.namespace.Filename.txt") 

Assurez-vous que les fichiers sont étiquetés comme « intégré des ressources » dans les propriétés, de sorte qu'ils sont construites dans l'ensemble correctement.

+0

@David Reis Si, comme je l'ai fait, vous mettez vos fichiers de données de test dans un dossier à l'intérieur de votre bibliothèque de classes de test, le répertoire fera partie de la chaîne. Par exemple, si l'espace de nom est test.namespace et que vous placez un fichier .file dans un répertoire, alors la chaîne est "test.namespace.someDirectory.somefile.txt". Une méthode utile à utiliser dans le cas où vous ne pouvez pas comprendre la chaîne est [this.GetType() .Assembly.GetManifestResourceNames()] (http://msdn.microsoft.com/en-us/library/system.reflection.assembly. getmanifestresourcenames% 28v = vs.110% 29.aspx) –

Questions connexes