주어진 .NET 어셈블리의 모든 문자열 리소스를 반복하고 싶습니다.다른 어셈블리에서 문자열 리소스 반복하기
주어진 문화 또는 중립 문화 ManifestResourceException 누락 : GetResourceSet 항상 예외를 throw합니다,
public void IterateResourcesInAssembly(string filename) { var assembly = Assembly.LoadFile(filename); string[] resourceNames = assembly.GetManifestResourceNames(); foreach (var resourceName in resourceNames) { var resourceManager = new ResourceManager(resourceName, assembly); var resourceSet = resourceManager.GetResourceSet(CultureInfo.CurrentCulture, true, true); // Exception is thrown! } }
문제 여기에 있습니다 : 이렇게하려면 그래서 나는 다음과 같은 코드를 함께했다 리소스를 찾을 수 없습니다 ...
하지만 그건 사실이 아닙니다. 어셈블리에는 영어와 독일어로 된 많은 리소스가 포함되어 있습니다. .NET 반사경을 사용하여 어셈블리를 열면 해당 리소스도 볼 수 있습니다.
InternalGetResourceSet 메서드를 사용해 보셨습니까? 나는 그 방법을 대신 사용하는 것을 막연하게 기억한다. 만나다. http://msdn.microsoft.com/en-us/library/system.resources.resourcemanager.internalgetresourceset%28v=vs.110%29.aspx. GetNeutralResourcesLanguage를 먼저 호출하여 전달해야하는 CultureInfo를 얻을 수도 있습니다. – stevethethread