2009-07-01 18 views
2

私はC#でテストデータをロードする簡単な方法を見つけるのに苦労しています。C#でテストデータを読み込むには?

... 

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#のリソースファイルを使用しようとしましたが、私はロードし、それを操作しにくいが見つかりました:Javaでは

は、私は次のコードを使用してリソースをロードします。 C#でリソースをロードする簡単な方法はありますか?

答えて

9

はい - Assembly.GetManifestResourceStreamを使用してください。

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

ちょうどファイルがプロパティで「埋め込まれたリソース」としてタグ付けされていることを確認しますので、彼らは正しくアセンブリに組み込まれます。

+0

@David Reisもし私がしたように、テストクラスのライブラリの中のフォルダにテストデータファイルを置くと、ディレクトリはその文字列の一部になります。たとえば、名前空間がtest.namespaceでsomeDirectoryにsomefile.txtを置く場合、文字列は "test.namespace.someDirectory.somefile.txt"です。文字列を特定できない場合に役立つ便利な方法は[this.GetType().Assembly.GetManifestResourceNames()](http://msdn.microsoft.com/en-us/library/system.reflection.assembly)です。 getmanifestresourcnames%28v = vs.110%29.aspx) –

関連する問題