来自类库的 Application.GetResourceStream

Col*_*son 6 c# resources

我正在尝试从类库加载资源。事实上,这并不完全正确。我正在尝试实现一种从代码中任何引用的项目加载资源的好方法。

为此,我正在开发一个 ResourceHelper 类。到目前为止就到此为止了。

public class ResourceHelper : IResourceHelper
{
    public string ReadTextFileFromResource(string resourceFileName)
    {
        StreamResourceInfo streamResourceInfo = Application.GetResourceStream(new Uri(resourceFileName, UriKind.Relative));
        StreamReader streamReader = new StreamReader(streamResourceInfo.Stream);
        return streamReader.ReadToEnd();
    }
}
Run Code Online (Sandbox Code Playgroud)

当资源位于主应用程序项目中时,此代码非常有效。但是,如果我想拥有从主应用程序引用的类库中的资源,则找不到该资源。

这是我如何调用上述类的典型示例。

string sqlCommandText = _resourceHelper.ReadTextFileFromResource("Resources\\InternalSqlScripts\\DatabasePatchingTablesPreparation\\SelectPatchingTableNames.sql");
Run Code Online (Sandbox Code Playgroud)

有没有办法使这个引用成为正确的类库?我尝试过 pack:// uri,但是我只能让它抛出异常。