2009-07-01 55 views
2

我正在努力尋找一種簡單的方法來在C#中加載我的測試數據。如何在C#中加載我的測試數據?

在Java中,我使用下面的代碼加載資源:

... 

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

我試圖用C#資源文件,但我發現尷尬的加載和操縱它。有沒有更簡單的方式來加載資源在C#中?

回答

9

是 - 使用Assembly.GetManifestResourceStream,例如,

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

只需確保文件被標記爲在屬性「嵌入的資源」,使他們獲得正確的內置到組件。

+0

@David Reis如果像我一樣,將測試數據文件放在測試類庫內的文件夾中,那麼該目錄將成爲字符串的一部分。例如,如果命名空間是test.namespace,並且將somefile.txt放在someDirectory中,那麼字符串是「test.namespace.someDirectory.somefile.txt」。一個有用的方法,以防萬一你找不到字符串是[this.GetType().Assembly.GetManifestResourceNames()](http://msdn.microsoft.com/en-us/library/system.reflection.assembly。 getmanifestresourcenames%28V = vs.110%29.aspx) – 2014-03-15 03:45:07

相關問題