dotnet:依赖注入

embedded/2024/11/20 20:23:15/

依赖注入的基本概念

  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)

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


http://www.ppmy.cn/embedded/139165.html

相关文章

OpenCPN中的GTK版本及调试信息

1:开启GTK的调试信息 export GDK_DEBUG=all root@rk3568-buildroot:/home/corey/opencpn/opencpnbuildroot/OpenCPN/build_wxWidgets3.3.2/install/bin# ./opencpn Gdk-Message: 00:43:27.823: Trying wayland backend Gdk-Message: 00:43:27.824: opening display Gdk-Mes…

Spring Boot 2.x 和 Druid 多数据源整合 dm

参考链接 SpringBoot alibaba druid 语雀 Home alibaba/druid Wiki GitHub druid/druid-spring-boot-starter at master alibaba/druid GitHub 使用 1&#xff09;添加依赖 <!-- druid --> <dependency><groupId>com.alibaba</groupId><a…

python pytorch 加载MNIST训练集,解释

def data_generator(root, batch_size): # 加载MNIST训练集&#xff0c;指定根目录&#xff0c;设置为训练模式&#xff0c;如果数据不存在则下载 train_set datasets.MNIST(rootroot, trainTrue, downloadTrue, # 对图像进行预处理&a…

Python笔记2-六种标准数据类型3

4、元组&#xff08;Tuple&#xff09; 不可变&#xff0c;是序列 元组用圆括号定义&#xff08;圆括号可省略&#xff09;&#xff0c;没有元素类型限制 tuple(literable) 将一个literable对象转化为元组并返回&#xff0c;如果没有实参&#xff0c;则返回空元组 5、字典…

炼码LintCode--数据库题库(级别:中等;数量:更新中~)--刷题笔记_03

目录 炼码LintCode--数据库题库&#xff08;级别&#xff1a;中等&#xff1b;数量&#xff1a;更新中~&#xff09;--刷题笔记_033617 更换连续两个人的座位&#xff08;case when&#xff09;题&#xff1a;sql&#xff1a;解释&#xff1a; 3615 数据中位数&#xff08;窗…

css3中的多列布局,用于实现文字像报纸一样的布局

作用&#xff1a;专门用于实现类似于报纸类的布局 常用的属性如下&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevic…

git自动转换换行符问题

在git上传、更新或者新增文件时会处理文本文件的换行符号。换行符在windows中默认为CRLF即“\r\n”,在linux中为LF即"\n"。如果不特殊配置如果仓库的文件换行符为LF&#xff0c;下载到windows会变成CRLF&#xff0c;下载到linux上还是LF。上传时windows环境的CRLF会转…

如何利用必盈接口在 C#中完成股票量化程序

一、引言 在股票市场中&#xff0c;量化交易越来越受到关注。通过利用必盈接口&#xff0c;我们可以在 C#环境下构建股票量化程序&#xff0c;获取丰富的股票数据来支持交易策略的设计与执行。以下将详细介绍利用必盈接口在 C#中实现股票量化程序的步骤。 二、必盈接口概述 必盈…