在 ASP.NET Core 中全局重用变量

2024-06-26

我必须强制这些变量在我想使用的每个变量上重用,这让我很困难。我需要创建一个类来定义这些变量并在整个程序中使用它们。我怎样才能做到这一点?

string RootFolderName = "Uplaod";
string ProductPictureFolder = "ProductPictureFolder";
string ProductMainPictureFolder = "ProductMainPicture";
string WebRootPath = _hostingEnvironment.WebRootPath;
string RootPath = Path.Combine(WebRootPath, RootFolderName);
string ProductPicturePath = Path.Combine(WebRootPath, RootFolderName, ProductPictureFolder);
string ProductMainPicturePath = Path.Combine(WebRootPath, RootFolderName, ProductPictureFolder, ProductMainPictureFolder);
string newPath = Path.Combine(WebRootPath, ProductMainPicturePath);

您可以使用单例类,在这里:

界面:

public interface IApplicationData
{
    string RootFolderName { get; }

    string ProductPictureFolder { get; }

    string ProductMainPictureFolder { get; }

    string WebRootPath { get; }

    string RootPath { get; }

    string GetProductPicturePath();

    string GetProductMainPicturePath();

    string GetNewPath();
}

具体实施:

public class ApplicationData : IApplicationData
{
    readonly IHostingEnvironment _hostingEnvironment;

    public ApplicationData(IHostingEnvironment hostingEnvironment)
    {
        _hostingEnvironment = hostingEnvironment;
    }

    public string RootFolderName => "Upload";

    public string ProductPictureFolder => "ProductPictureFolder";

    public string ProductMainPictureFolder => "ProductMainPicture";

    public string WebRootPath => _hostingEnvironment.WebRootPath;

    public string RootPath => Path.Combine(WebRootPath, RootFolderName);

    public string GetProductPicturePath()
    {
        return Path.Combine(WebRootPath, RootFolderName, ProductPictureFolder);
    }

    public string GetProductMainPicturePath()
    {
        string path = Path.Combine(WebRootPath, RootFolderName, ProductPictureFolder, ProductMainPictureFolder);
        return path;
    }

    public string GetNewPath()
    {
        string productMainPicturePath = GetProductMainPicturePath();
        return Path.Combine(WebRootPath, productMainPicturePath);
    }
}

在 DI 容器中注册:

services.AddSingleton<IApplicationData, ApplicationData>();

Usage:

public class ValuesController : ControllerBase
{
    readonly IApplicationData _applicationData;

    public ValuesController(IApplicationData applicationData)
    {
        _applicationData = applicationData;
    }

    [HttpGet]
    public IActionResult Get()
    {
        string data = _applicationData.ProductMainPictureFolder;
        string data2 = _applicationData.GetProductPicturePath();
        string data3 = _applicationData.GetNewPath();

        return Ok();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ASP.NET Core 中全局重用变量 的相关文章

  • 遍历后加快数组查找速度?

    我有一个123MB大的int数组 它基本上是这样使用的 private static int data new int 32487834 static int eval int c int p data c 0 p data p c 1 p
  • HTML 文档

    有没有一个工具可以从 VS2010 生成的 XML 文档文件生成 HTML 页面 我在谷歌上搜索了这样的工具 但没有找到 我下载并安装了SandCastle 但我不明白如何使用它 尝试使用Sandcastle 帮助文件生成器 http sh
  • 获取当前用户的 NetworkCredential (C#)

    我正在尝试从控制台应用程序调用 Web 服务 并且我需要向客户端提供System Net NetworkCredential object 是否有可能创建一个NetworkCredential启动应用程序的用户的对象而不提示输入用户名 密码
  • gets 和 scanf 有什么区别?

    如果代码是 scanf s n message vs gets message 有什么区别 似乎两者都获取消息的输入 基本区别 参考您的特定场景 scanf 遇到一个时结束接受输入whitespace newline or EOF gets
  • 在子目录中构建共享库

    我正在尝试构建一个使用一些 C 代码的 R 包 我有一个编译为可执行文件的 C 库 可以从命令行调用 有一个与之关联的 Makefile 我正在尝试获取信息here http cran r project org doc manuals R
  • 在异步方法中使用时 HttpClient 标头被清空

    我正在使用 NET Framework 4 6 1 我的 Web api 中有一个控制器 其中有静态 HttpClient 来处理所有 http 请求 在 IIS 上托管我的应用程序后 大约每月一次 我的应用程序的所有传入请求都会出现以下异
  • MVVM 同步集合

    是否有一种标准化方法可以将 Model 对象集合与 C 和 WPF 中匹配的 ModelView 对象集合同步 我正在寻找某种类 可以使以下两个集合保持同步 假设我只有几个苹果 并且可以将它们全部保存在内存中 换句话说 我想确保如果我将 A
  • javascript 中的工厂模式与构造函数模式[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我看到了关于 javascript 设计模式的教程 虽然教程很好 但它给我留下了很少的问题 正如我所见 工厂和构造函数产生相同的结果
  • 测试从 ComboBox 派生的自定义控件

    我创建了一个从 ComboBox 派生的控件 并希望对其行为进行单元测试 但是 它在我的单元测试中的行为似乎与实际应用程序中的行为不同 在实际应用程序中 Combobox DataSource 属性和 Items 同步 换句话说 当我更改
  • Linux C++ 调试器

    我正在寻找完美的 Linux C 调试器 我不期望成功 但搜索应该提供丰富的信息 我是一个非常有能力的 gdb 用户 但 STL 和 Boost 很容易压垮我的调试技能 并不是说我无法深入了解数据结构的内部结构 而是它需要很长时间 我通常会
  • ASP.NET 中的 thread.sleep

    我正在为我的网站模拟彗星实时馈送协议 因此在我的控制器中我添加 while nothing new before timeout Thread Sleep 1000 但我注意到添加此功能后整个网站变慢了 调试后我得出结论 当我打电话时Thr
  • 如何在 WCF 中反序列化自定义 SOAP 标头?

    我正在尝试向通过 WCF 的所有 SOAP 请求添加自定义标头 我发现这篇精彩的文章 http blogs msdn com b mohamedg archive 2012 10 21 adding custom soap headers
  • 解析通过asp:FileUpload上传的XML文件

    我有一个场景 用户将上传 XML 文件 我想将该文件添加到数据库中的表中 不过 困难的部分是我需要解析文件 然后将一些信息添加到一些不同的表中 显示如何获取 XML 文件的每个示例都使用 URI 来获取文件 但是如何直接从数据库获取文件 或
  • Excel 2007 中的数值 - 底层 xml 文件中的表示与存储

    这个问题与 NET和OpenXml有关 我已经阅读了以下文章 它有很好的解释 但没有回答我的问题 Excel 2007 中数值的可视化与底层 xml 文件不一致 https stackoverflow com questions 58594
  • OpenMP 循环数组访问中的错误共享

    我想利用 OpenMP 来并行执行我的任务 我需要将数组的所有元素减去相同的数量并将结果写入另一个向量中 两个数组都是动态分配的malloc第一个填充了文件中的值 每个元素都有类型uint64 t pragma omp parallel f
  • 如何在 C++ 中初始化嵌套类的构造函数

    我在初始化嵌套类构造函数时遇到问题 这是我的代码 include
  • 矩阵行列式算法 C++

    我是编程新手 我一直在寻找一种找到矩阵行列式的方法 我在网上找到了这段代码 但我很难理解这里的算法 我对递归的基础没有问题 但继续和主循环我很难理解 非常感谢任何可以向我解释该算法的人 int determ int a MAX MAX in
  • 更快的 WinSock sendto()

    我使用的是 Windows Server 2008 我的程序是用 C 编写的 我在 while true 循环中使用 WinSock2 和 sendto 来发送数据包 代码如下 while true if c snd gt max c sn
  • 如何以一对一/零关系更新员工和身份用户

    我正在尝试更新员工记录 也想更新身份用户 如果我先单独更新身份用户 例如 UserManager Update user Context Entry employee State System Data Entity EntityState
  • RC4 实现与 openssl 输出不匹配

    我的目标是在 C C 中实现 RC4 流密码 并确保它产生与使用时相同的输出openssl命令 按照伪代码维基百科 https en wikipedia org wiki RC4 该实现似乎有效 因为它可以加密和解密内容 但是 加密的输出与

随机推荐

  • 使用索引作为循环变量连接多个数据帧

    我通过 for 循环创建多个数据帧并将它们连接起来 效果很好 但我需要包含循环变量作为索引 我找不到将循环变量设置为索引的方法 maindf pd DataFrame for i in 20170724 20170725 20170726
  • 在 Sequelize 中添加带有起始值的自动递增整数

    经过一些研究 我似乎无法找到执行以下操作的好方法 我不想向现有表添加新列 该列应该是一个自动递增整数 从值 1000 开始 我的迁移文件现在简单明了 use strict module exports up queryInterface S
  • 从 ElementFinder 数组创建 ElementArrayFinder

    这是一个后续问题当条件评估为 true 时获取元素 扩展 ElementArrayFinder https stackoverflow com questions 32572299 take elements while a conditi
  • ExecuteNonQueryAsync 并在 SQL 事务中提交

    我正在寻求对我创建的一段代码的帮助 我正在尝试在事务中从 C 进行异步 SQL 调用 例如我可能正在更新或删除表中的行 这是我到目前为止所拥有的 但我似乎无法找到有关在事务中执行此操作的太多信息 根据我在这里所拥有的以及到目前为止我所理解的
  • Go中通过反射给struct成员赋值

    我有一个结构 v 其中包含成员 A B C 字符串 使用反射 我可以获得字段的名称及其值 typ v Type for i 0 i lt v NumField i gets us a StructField fi typ Field i f
  • SpriteKit SKTexture 崩溃

    不知道为什么这不起作用 当它尝试创建船舶节点时 它会因 EXC BAD ACCESS 而崩溃 SKTexture tex SKTexture textureWithImageNamed Spaceship CIFilter filter C
  • pouchdb 会像 couchdb 一样留下已删除的墓碑吗?

    我有一个混合应用程序 可以在 couchdb 上生成大量墓碑 服务器每月大约10万 每个用户每天应该获得大约 4 个 Pouchdb 维护墓碑吗 或者它们会被压缩或清除吗 或者有命令可以做到这一点吗 或者我是否必须删除数据库并定期重新创建
  • 我的堆栈跟踪中的行号怎么可能是错误的?

    我有一个Python 版本2 7 6 程序 截至昨晚已经运行了一两天 它报告了一些错误 然而 堆栈跟踪明显错误 假设我的代码是这样的 def do A do some stuff do B def do B do some IO that
  • 将容器/内核注入到主应用程序演示器中是否正确? [复制]

    这个问题在这里已经有答案了 我正在使用 Ninject 来处理我的依赖项 My ApplicationPresenter负责将用户调用分派到整个应用程序中的功能 因此需要一次注入多个工厂 从而注入容器本身 它处理 MDI GUI 有更好的方
  • Google App Engine 的示例 Android 应用程序,抛出异常

    我的 GAE 示例 Android 应用程序直到昨天都工作正常 除了在 Consts java 中添加了我的项目 ID 之外 我没有对客户端应用程序进行任何更改 现在每次我尝试插入 我的意思是发送消息 时都会抛出以下异常 06 06 09
  • 测试期间的 Mocha beforeEach 和 afterEach

    我一直在尝试使用摩卡测试我的测试服务器 这是我使用的以下代码 与另一篇类似帖子中找到的代码几乎相同 beforeEach function done Setup console log test before function ws on
  • 有什么方法可以在 ASP.NET MVC Web 应用程序中模拟声明主体吗?

    我有一些ASP NET MVC控制器代码检查用户是否经过身份验证 如果是 则检查用户是否具有特定声明 工作正常 我有一些单元测试 我需要模拟一个IPrincipal 这很容易做到 但我不知道如何检查索赔 我通常会做类似的事情 public
  • 触摸屏模拟器:是否有任何 Windows 模拟器可以在触摸屏环境中测试应用程序

    我想在触摸屏环境中测试我的应用程序 我的应用程序是一个使用 asp net net Framework 3 5 和 flash 构建的网站 我想使用 Windows XP Vista 7 的模拟器来测试我的应用程序 请告诉我是否有 Micr
  • 替换为 NA

    我有一个包含条目的数据框 看来这些值没有被视为 NA 因为 is na 返回 FALSE 我想将这些值转换为 NA 但找不到方法 Use dfr dfr
  • 如何在没有任何数据行的情况下读取 Excel 表/ListObject 中的计算列的公式

    我有一个以外部查询作为数据源的 ListObject 它返回 18 列 ListObject 之前已添加了额外的 4 个计算列 现在 ListObject 有 0 个数据行 但是 虽然有 0 个数据行 但我似乎无法读取计算列的预定义公式 如
  • LRU、FIFO、随机

    当出现页面错误或缓存未命中时 我们可以使用最近最少使用 LRU 先入先出 FIFO 或随机替换算法 我想知道 哪一个提供了最好的性能 也称为未来缓存丢失 页面错误最少的可能性 架构 Coldfire 处理器 没有愚蠢的问题 这句话非常适合这
  • 完整站点的 W3C 验证[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在开展一个项目 必须通过 W3C 标记验证来验证整个网站 大约有 150 个页面 有没有办法检查整个网站的 W3C 标记验证 The
  • 在 C# 中格式化 Resharper 属性的支持字段

    有没有办法控制 Resharper 放置其支持字段的位置 目前 它试图让他们在班级中名列前茅 我希望他们能去到酒店的正上方 还没有
  • dulwich - 从远程仓库身份验证克隆

    我找不到有关此主题的任何资源 我需要通过提供用户名和密码从私有存储库进行克隆 然而 当它们作为关键字参数提供给 dulwich get client from path 时 会出现错误 提示 未知参数 用户名 这似乎是一件简单的事情 但我找
  • 在 ASP.NET Core 中全局重用变量

    我必须强制这些变量在我想使用的每个变量上重用 这让我很困难 我需要创建一个类来定义这些变量并在整个程序中使用它们 我怎样才能做到这一点 string RootFolderName Uplaod string ProductPictureFo