如何解决HttpContext 错误 txt 文件的文件路径
我有一个包含产品列表的 .txt 文件。我需要添加一个项目并使用它,但我的文件路径不起作用。
我试图添加 HttpContext.Current.Server.MapPath("~/ProductList.txt");
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Newtonsoft.Json;
namespace AmazHumanLibrary
{
public class ProductRepository
{
string FilePath = HttpContext.Current.Server.MapPath("~/ProductList.txt");
public List<Product> GetAll()
{
List<Product> products = new List<Product>();
if (!File.Exists(FilePath))
{
var stream = File.Create(FilePath);
stream.Close();
return products;
}
string fileContent = File.ReadAllText(FilePath);
if (string.IsNullOrEmpty(fileContent))
{
return products;
}
products = JsonConvert.DeserializeObject<List<Product>>(fileContent);
return products;
}
但我收到错误 " The name HttpContext does not exist in the current context"
。
这是我的项目结构:
解决方法
要在控制器或 Razor 页面之外访问 HttpContext,一种方法是将 IHttpContextAccessor
注入您的类(存储库),如下所示:
public class ProductRepository
{
public ProductRepository(IHttpContextAccessor httpContext)
{
_httpContextAccessor = httpContext;
}
private readonly IHttpContextAccessor _httpContextAccessor;
public List<Product> GetAll()
{
string filePath = _httpContextAccessor.HttpContext.Server.MapPath("~/ProductList.txt");
...
官方文档 here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。