在应用程序启动时创建注入对象,而不是在请求时创建

我创建了一个如下所示的 ASP.NET Core API 项目,启动它,然后等待了几秒钟。 “创建XXX”直到我请求 API URL 后才打印出来。我可以告诉 ASP.NET Core 在启动后无论是否有请求都创建一个 MyXXX 吗?原因是创建/初始化可能需要一段时间MyXXX,如果在请求之前完成,第一个请求会更快。


public void ConfigureServices(IServiceCollection services)

{

    services.AddSingleton<IXXX, MyXXX>();

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

}


[HttpGet]

public ActionResult<string> Get([FromServices]IXXX xxx)

{

    return xxx.Value.ToString();

}


public interface IXXX

{

    int Value { get; set; }

}


class MyXXX : IXXX

{

    public MyXXX()

    {

        Debug.WriteLine("Creating XXX");

    }

    public int Value { get; set; }

}


缥缈止盈
浏览 101回答 1
1回答

绝地无双

是的,当然你可以自己做!var&nbsp;concrete=&nbsp;new&nbsp;MyXXX(); services.AddSingleton<IXXX>(concrete);
打开App,查看更多内容
随时随地看视频慕课网APP