我们想在C#中列出非托管资源库(DLL)的内容(键/值对)。
(请注意,资源DLL是不 .Net程序集/ DLL)
资源库定义为指定的in MSDN。
mc -s EventLogMsgs.mc
rc EventLogMsgs.rc
link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res
示例EventLogMsgs.mc可能是:
; // - Event categories -
; // Categories must be numbered consecutively starting at 1.
; // ********************************************************
MessageId=0x1
Severity=Success
SymbolicName=INSTALL_CATEGORY
Language=English
Installation
.
MessageId=0x2
Severity=Success
SymbolicName=QUERY_CATEGORY
Language=English
Database Query
.
...
如果此资源库DLL是.Net程序集DLL,则列出资源将使用以下内容完成:
string strResourceDLLPath = "c:\\temp\\EventLogMsgs.DLL";
Assembly resAssembly = Assembly.LoadFrom( strResourceDLLPath );
ResourceManager resMgr = new ResourceManager( "ResourcesLib.Messages", resAssembly );
ResourceSet resSet = resMgr.GetResourceSet( System.Globalization.CultureInfo.CurrentCulture, true, true );
foreach (DictionaryEntry r in resSet)
Console.WriteLine( "Key={0} Value={1}", r.Key.ToString(), r.Value.ToString() );
谢谢!