여기서는 매우 간단한 내용이 누락되었지만 리플렉션을 사용하여이 포함 된 동일한 어셈블리 에서 포함 된 리소스를 검색 할 때의 이점은 무엇입니까? .resx 파일을 통해 간단히 검색 할 수 있습니까? 나는 이것을 많이 보지만 그것을 얻지는 않습니다 - 을 resx 파일 Resources.resource
과 비교할 이유가 있습니까? 심지어 마이크로 소프트는 그것을한다 : How to embed and access resources.포함 된 리소스에 액세스하기위한 리소스 파일 (.resx) 대 리플렉션
정확하게 말하자면, 임베디드 리소스 Config.xml
이 포함 된 어셈블리 MyAssembly
이 있다고 가정 해보십시오.
public string GetConfigXML()
{
Stream xmlStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MyAssembly.Config.xml");
string xml = GetStringFromStream(xmlStream);
return xml;
}
왜 GetManifestResourceStream()
때를 사용
public string GetConfigXML() // returns the content of Config.xml as a string
가 종종 내가 리소스를 검색하는 반사를 사용하여,이 같은 구현을 참조하십시오 어셈블리는 문자열로 말했다 리소스를 반환하는 방법을 구현 MyClass
있다 당신은 할 수 있습니다
- 비주얼 스튜디오에서
MyAssembly
프로젝트에 리소스 파일 (Resource.resx
)을 추가; Config.xml
을 자원의 'Files'에 추가하십시오.string xml = Resource.Config;
내가 내부적으로 .resx 파일을 처리하는 방법을 비주얼 스튜디오 모르겠지만,에 (그것을 단순히 복사 된 .resx 파일에 리소스를 의심 :
Config.xml
의 콘텐츠를 어떤 경우에는 중복 된 리소스로 끝날 것입니다). 내부적으로 리플렉션을 사용하지 않는다고 가정합니다. 이와 같은 상황에서 단순히 .resx 파일을 사용하지 않는 것이 어떻습니까? 내 성능이 훨씬 좋아 보이는 이유는 무엇입니까?
어셈블리를 통해 가져 오는 것은 culture 인식 위성 어셈블리를로드 할 수 있지만 resx를로드하면 현재 문화권에 맞는 올바른 어셈블리를 선택해야합니다. –