gpt4 book ai didi

c# - C# .NET 中 FileStream 的替代方案

转载 作者:太空狗 更新时间:2023-10-30 01:18:45 35 4
gpt4 key购买 nike

在 Visual Studio 环境中,项目 A (ASP.NET) 在我的解决方案中引用项目 B (C#),如下所示:

Solution
├─Project B
│ ├─data.txt
│ └─process.cs (a class BB with static initialization new FileStream("data.txt"))
└ Project A (referencces Project B)
├─bin
│ └─data.txt (copied from project B each time project B changes)
└─Controllers
└─mycontroller.cs (references the class BB)

问题是当我运行应用程序时,工作目录是C:\Program Files (x86)\IIS Express\,所以无法从编译版本读取data.txt process.cs 位于 bin 中。

目前,为了解决这个问题,我手动将data.txt复制到这个文件夹中,但是这个解决方案是行不通的。请注意,对 B 的更改必须与依赖于 B 的其他项目保持一致,这些项目并不都是 ASP.NET 项目。

我应该做哪些更改才能从我的项目访问 data.txt 而无需我将 data.txt 文件复制到 IIS Express 目录?

我想将我的程序移植到 Azure Online,但我不能依赖这种方法。感谢您的帮助。

其他链接的答案:

  • This answer是 ASP.NET 特定的,我无法添加 server.MapPath,因为项目不知道它。
  • This answer引用了项目路径,但没有给我关于如何修改它们的提示。

最佳答案

“请注意,对 B 的更改必须与依赖于 B 的其他项目保持一致,这些项目并不都是 ASP.NET 项目”

不确定在依赖于项目 B 的其他项目的上下文中,连贯性对您意味着什么......但我想到了以下选项 -

  1. 将 data.txt 作为资源嵌入到为项目 B 生成的程序集中。项目 B 然后可以将文件作为资源读取(假设构建后不需要修改文件内容)请参阅 ResourceManager 类以处理程序集中嵌入的资源。 http://msdn.microsoft.com/en-us/library/system.resources.resourcemanager(v=vs.110).aspx

  2. 如果它适用于项目 B 的所有客户端,则扫描子目录以查找文件。这更 hackish.. 但实际上取决于项目 B 的场景。

关于c# - C# .NET 中 FileStream 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25865430/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com