我有一个Web服务,它为我提供了生成的.resx(仅限XML),然后我将其转换为二进制文件.resources
。我目前正使用al.exe
生成一个汇编文件。以下是我的论点:
/t:lib /c:{culture} /embed:"{.resource input}" /out:"{.dll output}"
通过Assembly.LoadFrom(file)
加载此程序集工作正常,但我认为我的程序集未正确生成。它没有要调用的类型,命名空间或方法,因此显然没有ResourceManager
。
基本上我只是想知道是否可以生成,加载和利用我的项目在编译时没有的类或命名空间的资源。感谢。
答案 0 :(得分:4)
您的程序集是一个附属程序集。来自MSDN:
根据定义,附属程序集只能包含资源。他们 不能包含任何可执行代码。
如果要访问此程序集的资源 - 类似的代码应该可以工作:
ResourceManager rm = new ResourceManager(
"ResourceTest.Properties.Resources",
Assembly.LoadAssembly(file));
MessageBox.Show(rm.GetString("helloWorldString"));
此外,来自MSDN的文章:Walkthrough: Loading Resources from a Satellite Assembly显示了如何从附属程序集加载资源字符串的另一种方法。