如何将资源嵌入另一个项目中

cs0*_*815 20 .net c#

假设我有一个C#类库项目,它只包含xml文件作为嵌入式资源.我想从另一个解决方案项目中访问这些资源.由于'class'库不包含类,因此很难获得如下所示的程序集:

typeof(ClassName).Assembly ...
Run Code Online (Sandbox Code Playgroud)

最终获得嵌入式资源.有没有办法获得嵌入式资源,而无需硬编码任何魔术字符串等?谢谢.

PS:

这似乎是目前唯一可能的方式:

var assembly = typeof(FakeClass).Assembly;
var stream = assembly.GetManifestResourceStream("Data.Blas.xml"); 
Run Code Online (Sandbox Code Playgroud)

我在'数据'程序集中创建了一个'假类'.

Kur*_*ran 15

您可以使用Assembly.GetManifestResourceStream()从嵌入式程序集加载xml文件.

System.IO.Stream s = this.GetType().Assembly.GetManifestResourceStream("ActivityListItemData.xml"); 
Run Code Online (Sandbox Code Playgroud)

编辑

您可以使用Assembly.Load()并加载目标程序集并从那里读取资源.

Assembly.LoadFrom("Embedded Assembly Path").GetManifestResourceStream("ActivityListItemData.xml");
Run Code Online (Sandbox Code Playgroud)

  • 从另一个项目加载资源没有明确解释(这是主要主题)。我们应该在“嵌入式​​汇编路径”中放入什么?项目的文件路径?是亲戚吗?从哪里? (8认同)
  • 'this' 将是执行程序集,而不是另一个程序集,所以这将不起作用! (3认同)