我有两个Visual Basic 2008项目 - 一个是类库项目,另一个是Windows Forms项目。在类库项目中,我在项目资源中定义了一些字符串(项目属性>资源选项卡)。
我构建了该类库项目并从调试文件夹中获取DLL文件,并在我的Windows窗体项目中添加为参考。
如何从引用的DLL文件中读取这些字符串?
答案 0 :(得分:12)
虽然您可以动态加载DLL,但正如您所做的那样,可以使用引用。事实上,我建议使用引用,除非您有特殊要求动态加载资源程序集。
关于访问资源,您需要做一些事情。
在资源程序集中,您需要确保资源是公共的。默认情况下,资源设置为internal,这意味着您将无法在winforms应用程序中看到资源。双击Properties \ Resources.resx以打开资源视图。在顶部工具栏中,您将看到组合框下拉旁边的标签“访问修改器”。将选择更改为公开。
您需要从表单应用程序引用程序集。你已经声明你已经这样做了。请注意,更好的方法是创建一个包含两个项目的解决方案。然后在表单应用程序中选择添加引用。单击顶部的“项目”选项卡。双击资源DLL项目名称。这比直接引用调试DLL更好,因为这意味着如果您在表单应用程序中的发布版本和调试版本之间进行更改,它将自动构建资源程序集的匹配版本/调试版本。
添加引用后,您只需引用资源DLL中的类型,例如
ResourceDLLNamespace.Properties.Resource.ResourceName
请注意,如果您对表单应用和资源DLL使用相同的命名空间,则需要注意类型名称冲突。在这种情况下,您的表单应用程序都可以访问它自己的Properties.Resources类以及资源DLL的类。你可以做两件事来避免这种情况:
-Donovan
答案 1 :(得分:7)
我认为您只需使用System.Reflection.Assembly.Load
加载其他程序集,然后使用带有程序集的System.Resources.ResourceManager
构造函数。
请注意,我认为无需参考此工作。