2009-07-01 12 views
2

Ich habe Schwierigkeiten, eine einfache Möglichkeit zu finden, meine Testdaten in C# zu laden.Wie lade ich meine Testdaten in C#?

In Java ich eine Ressource geladen werden mit dem folgenden Code:

... 

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"); 
} 

Ich habe versucht, C# Ressource-Datei zu verwenden, aber ich fand umständlich, es zu laden und zu manipulieren. Gibt es eine einfachere Möglichkeit, Ressourcen in C# zu laden?

Antwort

9

Ja - verwenden Sie Assembly.GetManifestResourceStream, z.

Stellen Sie sicher, dass die Dateien in den Eigenschaften als "Eingebettete Ressource" gekennzeichnet sind, damit sie ordnungsgemäß in die Assembly integriert werden.

+0

@David Reis Wenn Sie, wie ich, Ihre Testdatendateien in einem Ordner innerhalb Ihrer Testklassenbibliothek ablegen, wird das Verzeichnis Teil der Zeichenfolge. Beispiel: Wenn der Namespace test.namespace ist und Sie die Datei somefile.txt in ein Verzeichnis schreiben, lautet die Zeichenfolge "test.namespace.someDirectory.somefile.txt". Eine hilfreiche Methode für den Fall, dass Sie die Zeichenfolge nicht herausfinden können, ist [this.GetType() .Assembly.GetManifestResourceNames()] (http://msdn.microsoft.com/en-us/library/system.reflection.assembly. getmanifestresourcenames% 28v = vs.110% 29.aspx) –