【发布时间】:2011-11-10 22:44:56
【问题描述】:
我继承了一个用 C# 和 VB.Net 混合编写的大型项目
该项目涉及许多单独的程序集。
有数百个(或数千个)资源(png 文件)已使用 VB My.Resources 功能插入到项目中,我想在不同的程序集中从一些 C# 代码访问这些资源。
Microsoft 对此有一个KB article。它包含一些示例代码,但我无法让它工作(而且我不能完全遵循代码)。
// Gets a reference to the same assembly that
// contains the type that is creating the ResourceManager.
System.Reflection.Assembly myAssembly;
myAssembly = this.GetType().Assembly;
// Gets a reference to a different assembly.
System.Reflection.Assembly myOtherAssembly;
myOtherAssembly = System.Reflection.Assembly.Load("ResourceAssembly");
// Creates the ResourceManager.
System.Resources.ResourceManager myManager = new
System.Resources.ResourceManager("ResourceNamespace.myResources", myAssembly);
// Retrieves String and Image resources.
System.String myString;
System.Drawing.Image myImage;
myString = myManager.GetString("StringResource");
myImage = (System.Drawing.Image)myManager.GetObject("ImageResource");
我不明白为什么代码会创建 myAssembly 和 myOtherAssembly 并且似乎从不使用第二个对象?
是否加载第二个程序集的动作...
myOtherAssembly = System.Reflection.Assembly.Load("ResourceAssembly");
...意思是我在创建 ResourceManager 时不需要进一步引用它?
System.Resources.ResourceManager myManager = new
System.Resources.ResourceManager("ResourceNamespace.myResources", myAssembly);
任何想法我如何访问这些资源(无论是否反射)都将不胜感激!
【问题讨论】:
-
澄清一下,您在此解决方案的各种程序集中有很多 .resource 文件,还是有很多具有“嵌入式资源”构建操作的 png 文件?
标签: c# .net vb.net reflection