我可以在同一解决方案中从另一个项目访问另一个项目的嵌入式资源吗?

pen*_*ake 3 .net c# embedded-resource visual-studio

我有一个xml文件作为Project_A中的嵌入式资源.

我想从Project_B中获取这个引用Project_A的嵌入式资源.

(基本上Project_B包含单元测试,我用ReSharper运行它们.)

当我在Project_B上工作时,是否可以访问Project_A的嵌入式资源?

或者一般来说,我可以在同一解决方案中从另一个项目访问另一个项目的嵌入式资源吗?

ulr*_*chb 6

是的你可以.下面是一个示例,如何System.Timers.Timer.bmp在.NET Framework中获取嵌入式资源System.dll:

using (Stream stream = typeof(System.Timers.Timer).Assembly.
                           GetManifestResourceStream("System.Timers.Timer.bmp"))
{
    using (Bitmap bitmap = new Bitmap(stream))
    {
        //bitmap.Dump();
    }
}
Run Code Online (Sandbox Code Playgroud)

...或获取资源名称列表:

string[] names = typeof(System.Timers.Timer).Assembly.GetManifestResourceNames();
Run Code Online (Sandbox Code Playgroud)

...只需替换typeof(System.Timers.Timer)包含嵌入资源的程序集内部的类型.