【问题标题】:Singleton service visible from the classes类中可见的单例服务
【发布时间】:2020-05-29 00:00:19
【问题描述】:

我有一个单例服务类

    public class Globals
    {

        public string serverURL { get; set; } = "";
        public string hostURL { get; set; } = "";
    }

并且我已经在 Main 函数中注册了它:

builder.Services.AddSingleton<Services.Globals>();

无论如何,我想从项目中的其他类访问它,而不仅仅是剃须刀页面。 例如,我在 PCL 库中有一个类:

public class MyStuff
{

    public MyStuff()
    {
       - How do I access Globals in here?!
    }

    public void MyStuffMethod()
    {
       - How do I access Globals in here?!
    }
}
  • 如何从项目的其余类中访问 Singleton 对象?

【问题讨论】:

    标签: asp.net blazor blazor-client-side


    【解决方案1】:

    这样访问,你只需要在类的构造函数中添加一个参数。

    public class HomeController : Controller
        {
            private Globals _globals;
            public HomeController(Globals globals)
            {
                _globals = globals;
            }
    }
    

    【讨论】:

    • 嗯.. 但是我怎样才能让单身人士 Globals 上课呢?
    • builder.Services.AddSingleton();您已添加为 singleton ,因此它将是单例类。您需要在构造函数中添加 Global 作为参数的任何类,您将获得全局对象。 HomeController 也是一个类。
    • 不确定我是否理解。请在示例中如何访问它。
    • 私有全局变量_globals;公共 HomeController(Globals globals) { _globals = globals;测试测试 = 新测试(_globals); }
    • 没有。我的意思是关于 HomeController 的参数。我传递给参数的内容是什么?
    猜你喜欢
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 2014-08-28
    • 2018-08-07
    • 1970-01-01
    相关资源
    最近更新 更多