C#

다른 프로젝트의 Resources.resx 파일의 리소스에 접근하기

네오팡 2012. 5. 7. 17:22
다른 프로젝트의 Resources.resx 파일의 리소스에 접근하기
try
{
	//시작 프로젝트에 있는 리소스일 경우는 GetEntryAssembly()
	//var assembly = System.Reflection.Assembly.GetEntryAssembly();

	var assembly = System.Reflection.Assembly.Load("MyAssemplyName");
	var res = new System.Resources.ResourceManager("MyNameSpace.Properties.Resources", assembly);
	var image = Image.FromStream(res.GetStream("MyImageName"));

	//리소스 파일에 있는 특정 문자열을 가져오려면
	var text = res.GetString("MyResourceName", System.Globalization.CultureInfo.CurrentCulture);
}
catch (Exception ex)
{
	throw ex;
}
다른 프로젝트의 특정 폴더에 있는 이미지에 접근하려면
try
{
	var assembly = System.Reflection.Assembly.Load("MyAssemplyName");
	var image = Image.FromStream(assembly.GetManifestResourceStream("MyNameSpace.MyFolderName.MyImageFileName"));
}
catch (Exception ex)
{
	throw ex;
}
전체 리소스 이름을 알고 싶다면 다음 메소드를 사용한다.
var list = System.Reflection.Assembly.Load("MyAssemplyName").GetManifestResourceNames();

foreach (var item in list)
{
	...
}