방법: 위성 DLL의 리소스에 액세스
위성 DLL을 만들고 여기에 리소스(아이콘, 비트맵, 리소스 문자열 등)를 추가한 경우 추가 기능 및 다른 자동화 프로젝트에 이러한 리소스를 사용할 수 있습니다. 다음 절차에서는 이러한 방법을 보여 줍니다.
참고
표시된 대화 상자 및 메뉴 명령은 현재 설정 또는 버전에 따라 도움말에 설명된 것과 다를 수 있습니다. 여기에 설명된 절차는 일반 개발 설정을 사용하여 개발되었습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기를 선택합니다. 자세한 내용은 설정에 대한 작업을 참조하십시오.
위성 DLL 리소스에 액세스
Visual Studio를 열고 기존의 추가 기능 프로젝트를 로드하거나 새로 만듭니다.
다음 코드 예제를 추가하고 컴파일한 다음 실행합니다.
예제
다음은 Visual Studio에서 위성 DLL을 찾는 데 사용하는 일반 알고리즘입니다. 이 코드를 사용하여 위성 DLL이 원하는 위치에서 올바르게 빌드되었는지, 원하는 리소스 이름이 지정되었는지 확인할 수 있습니다.
static void Main(string[] args)
{
string path = @"<some path here>";
System.Reflection.Assembly asm =
System.Reflection.Assembly.LoadFrom(path);
// For enhanced security, use the LoadFrom overload
// System.Reflection.Assembly.LoadFrom(path, securityInfo);
// where securityInfo is an instance of an Evidence object.
System.Reflection.Assembly assemblyForResources =
asm.GetSatelliteAssembly(System.Threading.
Thread.CurrentThread.CurrentCulture);
System.IO.Stream stream =
assemblyForResources.GetManifestResourceStream
(assemblyForResources.GetManifestResourceNames()[0]);
ResourceReader resReader = new ResourceReader(stream);
foreach (System.Collections.DictionaryEntry entry in resReader)
{
System.Windows.Forms.MessageBox.Show(entry.Key.ToString());
}
}
코드 컴파일
이 예제를 사용하려면 Visual C# 콘솔 응용 프로그램을 만들고, Main() 함수 대신 이 코드를 추가하고, 경로 변수를 위성 DLL의 경로가 아닌 추가 기능 어셈블리의 경로로 설정합니다. 코드를 실행하면 위성 DLL의 사용 가능한 모든 리소스가 표시됩니다.