我有一个XML文件,作为Project_A中的嵌入式资源。
我想从引用了Project_A的Project_B中访问这个嵌入式资源。
(基本上,Project_B包含单元测试,并且我使用ReSharper运行它们。)
当我在Project_B上工作时,是否可以访问Project_A的嵌入式资源?
或者一般地说,我可以从同一解决方案中的另一个项目访问另一个项目的嵌入式资源吗?
我有一个XML文件,作为Project_A中的嵌入式资源。
我想从引用了Project_A的Project_B中访问这个嵌入式资源。
(基本上,Project_B包含单元测试,并且我使用ReSharper运行它们。)
当我在Project_B上工作时,是否可以访问Project_A的嵌入式资源?
或者一般地说,我可以从同一解决方案中的另一个项目访问另一个项目的嵌入式资源吗?
是的,你可以。下面是一个示例,演示如何在.NET Framework的System.dll
中获取嵌入式资源System.Timers.Timer.bmp
:
using (Stream stream = typeof(System.Timers.Timer).Assembly.
GetManifestResourceStream("System.Timers.Timer.bmp"))
{
using (Bitmap bitmap = new Bitmap(stream))
{
//bitmap.Dump();
}
}
...或获取资源名称列表:
string[] names = typeof(System.Timers.Timer).Assembly.GetManifestResourceNames();
只需将typeof(System.Timers.Timer)
替换为嵌入式资源所在程序集中的类型即可。
Visual Studio 会自动创建嵌入资源的内部类。
该类无法从其他程序集中访问。
您可以: