代码之家  ›  专栏  ›  技术社区  ›  javad rabbani

在ASP.NET中有一个助手类的最佳实践是什么。NET Core可以在所有视图中使用吗?[关闭]

  •  0
  • javad rabbani  · 技术社区  · 11 月前

    我怎样才能有一个助手来处理网站徽标、网站名称等类似的事情?

    我在想一个静态助手类,比如 SiteUtilities 。但我需要一个缓存系统和数据库访问权限,因为这些数据可能会发生变化。

    我应该用另一种方式吗?

    或者,如果我可以使用静态助手,我如何注入我的 DbContext 或者安全地存储到这个类中?

    抱歉,我知道这是一个中午的问题,但我无法选择,有些事情告诉我静态不是一个好方法。

    1 回复  |  直到 11 月前
        1
  •  4
  •   Michał Turczyn    11 月前

    如果你需要使用其他依赖项,比如其他服务或数据库上下文,你真的需要另一个接口及其实现。

    例如 IService 及其执行 Service 。然后,您需要将其添加到服务集合中: services.AddScoped<IService, Service>() .

    然后注射 DbContext 或者其他存储库,您只需使用构造函数注入:

    public Service(DbContext context, IRepository repository)
    {
        _context = context;
        _repository = repository;
    }
    

    然后,如果你需要这个类来处理一些与UI相关的东西,你可以直接将它注入到剃刀视图中:

    @inject IService Service
    

    Dependency injection into views in ASP.NET Core