본문 바로가기

.NET/C# Basic

DLL Ressource 에서 BitmapImage 불러오기 Method

반응형


1. 외부 DLL Ressource  리플렉터 =>





2. 코드

/// <summary>
/// name         : GetDllToBitmapImageResource
/// desc         : BitmapImage load of resource
/// author       : 전광식
/// create Date  : 2013-01-10 오후 7:56:23
/// update date  : 2013-01-10 오후 7:56:23 , 수정개요 
/// </summary> /// <param name="assemblyName">AssemblyName</param> /// <param name="resourceUri">resourceUri</param> /// <returns></returns> public BitmapImage GetDllToBitmapImageResource(string assemblyNamestring resourceUri) {     Assembly assembly = Assembly.LoadFrom(System.Environment.CurrentDirectory + @"\" + assemblyName);     CultureInfo culture = System.Threading.Thread.CurrentThread.CurrentCulture;     string resourceName = assembly.GetName().Name + ".g";     ResourceManager resourceManager = new ResourceManager(resourceNameassembly);     try     {         ResourceSet resourceSet = resourceManager.GetResourceSet(culturetruetrue);         var resource = resourceSet.Cast<DictionaryEntry>().FirstOrDefault(x => x.Key.ToString() == @resourceUri).Value;         if (resource.GetType().BaseType == typeof(Stream))         {             Stream stream = resource as Stream;             BitmapImage bitmapImage = new BitmapImage();             bitmapImage.CacheOption = BitmapCacheOption.OnLoad;             bitmapImage.BeginInit();             bitmapImage.StreamSource = stream;             bitmapImage.EndInit();             return bitmapImage;         }         else         {             return new BitmapImage();         }     }     finally     {         resourceManager.ReleaseAllResources();     } }


using =>


 img이미지.Source = GetDllToBitmapImageResource("HIS.UI.Design.Themes.dll", "images/main/nopicturefemale.png");