2009-07-01 2 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# 리소스 파일을 사용하려고하지만로드하고 조작 어색 발견 : 자바에서

, 나는 다음과 같은 코드를 사용하여 리소스를로드합니다. C#에서 리소스를로드하는 간단한 방법이 있습니까?

답변

9

예 - Assembly.GetManifestResourceStream을 사용하십시오.

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

파일이 속성에서 "Embedded Resource"로 태그 지정되어있어 어셈블리에 올바르게 빌드되도록하십시오.

+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) –