Why can't I access a file using GetExecutingAssembly.GetFile()?
本问题已经有最佳答案,请猛点这里访问。
这段代码是为了帮助我理解而简化的。实际代码将在调用程序集中查找XML文件。但是,在这个简化的示例中,我甚至无法访问XML文件。我已将testfile.xml设置为嵌入资源。你知道为什么这个代码不起作用吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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); } } } |
结果代码
解决方案:
1 2 3 4 5 6 | var assembly = Assembly.GetExecutingAssembly(); using(var stream = assembly.GetManifestResourceStream("TestFile.xml")) using(TextReader tr = new StreamReader(stream)) { Console.WriteLine(tr.ReadToEnd()); } |
这里的更多信息)。
它它不工作,我会建议你呼叫