dotnet:依赖注入

依赖注入的基本概念

  1. 依赖:一个类依赖于另一个类或接口来完成其功能。
  2. 注入:依赖项由外部提供给类,而不是由类自己创建。

builder.Services.AddScoped<IMyDependency, MyDependency>();

这行代码使用 AddScoped 方法将 IMyDependency 接口和 MyDependency 类注册到依赖注入容器中。AddScoped 表示该服务的作用域为当前请求生命周期。这意味着在同一个 HTTP 请求中,IMyDependency 的实例是共享的,但在不同的请求之间,每个请求都会有新的实例。

builder.Services.AddRazorPages();

这行代码配置了 ASP.NET Core 以支持 Razor Pages。Razor Pages 是一种页面模型,适合构建具有简单 UI 的应用程序。

即pageMode直接能调用IMYDependency,因为pageMode与IMYDependency在同一作用域

过滤器

  1. 授权过滤器

    • 用于在执行动作之前进行权限验证,确保只有经过授权的用户才能访问特定的动作。
  2. 资源过滤器

    • 在执行动作之前和之后执行,可以用于处理资源级别的逻辑,如日志记录、性能监控等。
  3. 动作过滤器

    • 在执行动作方法之前和之后执行,可以用于修改输入参数或输出结果,如验证模型、缓存结果等。
  4. 异常过滤器

    • 用于捕获并处理动作执行期间抛出的异常,确保应用程序的稳定性和用户体验。
  5. 结果过滤器

    • 在执行动作结果之前和之后执行,可以用于修改动作结果,如压缩响应、添加HTTP头等。

EF 的主要特点

  1. 对象关系映射(ORM)

    • 将数据库表映射为 C# 类(实体)。
    • 通过 LINQ 查询数据库,返回对象集合。
  2. 代码优先(Code First)

    • 通过代码定义数据库模型,EF 自动生成数据库表结构。
  3. 数据库优先(Database First)

    • 从现有数据库生成 C# 类和上下文。
  4. 模型优先(Model First)

    • 通过设计器创建模型,然后生成数据库。
  5. 迁移(Migrations)

    • 管理数据库模式的变化,支持版本控制。

上一篇:Docker 基础命令介绍和常见报错解决-停止容器