此代码是简化的,以帮助我理解。实际代码将在调用程序集中查找xml文件。但是,在这个简化的示例中,我甚至无法访问xml文件。我已将TestFile.xml设置为嵌入式资源。 有什么想法为什么这个代码不起作用?
using System;
using System.Reflection;
namespace Testing
{
class Program
{
static void Main(string[] args)
{
var test = new A();
test.TestGettingAssemblies();
Console.ReadKey();
}
}
internal class A
{
internal void TestGettingAssemblies()
{
Console.WriteLine(Assembly.GetExecutingAssembly().FullName);
Console.WriteLine(Assembly.GetExecutingAssembly().GetFile("TestFile.xml") == null);
Console.WriteLine(Assembly.GetCallingAssembly().FullName);
}
}
}
答案 0 :(得分:0)
解决方案:
var assembly = Assembly.GetExecutingAssembly();
using(var stream = assembly.GetManifestResourceStream("TestFile.xml"))
using(TextReader tr = new StreamReader(stream))
{
Console.WriteLine(tr.ReadToEnd());
}
有关详细信息,请转到here。
它不起作用,我建议你拨打assembly.GetManifestResourceNames()
并检查结果是否为" TestFile.xml"