从 .NET Core 中的类库中加载资源



我有一个类库,它有一个从父项目调用的方法。我希望类库在调用方法时加载嵌入的资源。

示例:控制台应用有一个名为 TestClass 的类库。这有一个名为 test.txt 的嵌入式资源。当我在 TestClass 上调用方法时,我想读取资源 test.txt。

Console App
  |  TestClass.dll
       |  test.txt

我试过这段代码:

var assembly = Assembly.GetEntryAssembly();
var stream = assembly.GetManifestResourceStream("TestClass.test.txt");

但这在控制台应用中查找,而不是在类库中查找。

我看了这个例子:http://keithelder.net/2007/12/14/how-to-load-an-embedded-resource-from-a-dllenter 链接描述在这里,但这是从父应用程序加载文件,而不是从类库本身加载文件。

下面的代码不使用GetEntryAssembly(),而是获取类库作为程序集。

public string GetResource()
{
    var assembly = typeof(TestClass.Class1).GetTypeInfo().Assembly;
    // This shows the available items.
    string[] resources = assembly.GetManifestResourceNames();
    var stream = assembly.GetManifestResourceStream("TestClass.test.txt");
    using (var reader = new StreamReader(stream))
    {
        return reader.ReadToEnd();
    }
}

最新更新