【问题标题】:How to add global values in .NET Core 3?如何在 .NET Core 3 中添加全局值?
【发布时间】:2020-08-05 00:04:39
【问题描述】:

我需要设置全局值并从项目中的任何位置读取它。 是什么场景,如果AddSingleton怎么办?

我见过这个,但它对我不起作用: Global Variables in ASP.Net Core 2

【问题讨论】:

    标签: api .net-core


    【解决方案1】:

    Noah 的回答非常好,但是对于更简单的情况,您通常希望:

    1. 在根命名空间中创建一个包含所有数据的静态类

      public static class Cache
      {
          public static string Value1 => "Example";
          public static int Value2 => 42;
      }
      
    2. 完成

    您可以在系统范围内访问它的值,如下所示:

    var mySharedStringValue = Cache.Value1;
    

    如果您需要在启动时“加载”这些值,您可以将属性的签名更改为

    public static string Value1 { get; private set; } 
    

    并使用static constructor 或应用启动时在 Startup.cs 类中调用的简单静态初始化方法。

    【讨论】:

      【解决方案2】:

      如果您想全局读取静态值,我建议您使用configuration system。它允许在需要读取的地方注入配置。

      如果您需要共享可以更改的数据,您需要一些共享的线程安全机制。框架中内置的一个选项是使用in-memory cache,这是一个可在任何地方注入的全局共享缓存。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-09-30
        • 1970-01-01
        • 1970-01-01
        • 2016-12-14
        • 1970-01-01
        • 2017-05-18
        • 1970-01-01
        • 2022-07-01
        相关资源
        最近更新 更多