我有一个实用程序库(dll),它包含用于处理嵌入式资源的类(如下所示)。在Visual Studio 2013中,它按预期工作,并从调用实用程序库中的函数的程序集中加载资源。
在Visual Studio 2015中,当我调用这些函数时,代码会尝试从实用程序库而不是调用库加载资源。它们是单独的组件。
请帮助我理解为什么会这样,以及如何让它在Visual Studio 2015中运行? 提前谢谢。
public static class EmbeddedResources
{
public static string[] GetAllResourceNames()
{
Assembly _assembly = Assembly.GetExecutingAssembly();
return _assembly.GetManifestResourceNames();
}
public static string ReadQueryResource(string resourceName)
{
Assembly _assembly;
StreamReader _textStreamReader;
try
{
_assembly = Assembly.GetExecutingAssembly();
_textStreamReader = new StreamReader(_assembly.GetManifestResourceStream(resourceName));
if (_textStreamReader.Peek() != -1)
return _textStreamReader.ReadToEnd();
}
catch
{
//MessageBox.Show("Error accessing resources!");
}
return null;
}
}
答案 0 :(得分:1)
Assembly.GetExecutingAssembly()
获取包含当前正在执行的代码的程序集。
Assembly.GetCallingAssembly()
返回调用当前正在执行的方法的方法的程序集。