ASPNET Core笔试题 【面试宝典】

文章目录

  • 一、如何在ASP.NET Core中激活Session功能?
  • 二、什么是中间件?
  • 三、ApplicationBuilder的Use和Run方法有什么区别?
  • 四、如何使TagHelper在元素这一层上失效?
  • 五、什么是ASP.NET Core?
  • 六、ASP.NET Core中AOP的支持有哪些?
  • 七、ASP.NET Core Filter的注册方式有哪些?
  • 八、ASP.NET Core Filter如何支持依赖注入?
  • 九、ASP.NET Core如何读取配置文件中的内容?
  • 十、ASP.NET Core有哪些好的功能?
  • 十一、ASP.NET Core跟ASP.NET比较有哪些更好的地方?
  • 十二、什么是meta packages?
  • 十三、ASP.NET Core应用能够跟ASP.NET 4.x架构一起工作吗?
  • 十四、什么是ASP.NET Core的Startup类?
  • 十五、Startup类的ConfigureServices方法有什么作用?
  • 十六、Startup类的Configure方法有什么作用?
  • 十七、ASP.NET Core管道里面的Map扩展有什么作用?
  • 十八、ASP.NET Core里面的路径是如何处理的?
  • 十九、ASP.NET Core工程里面有多少个工程文件?
  • 二十、什么是ASP.NET Core里面的TagHelper
  • 二十一、说说.NET Core中_ViewImports文件的作用
  • 二十二、如何在Controller中注入service?
  • 二十三、描述一下依赖注入后的服务生命周期?
  • 二十四、说说ASP.NET Core内置容器的特点
  • 二十五、ASP.NET Core中如何读取静态文件?
  • 二十六、ASP.NET Core项目如何设置IP地址和端口号?
  • 二十七、ASP.NET Core项目中,wwwroot文件夹内包含什么内容?
  • 二十八、谈谈对ASP.NET Core kestrel的理解
  • 二十九、谈谈对Autofac的理解
  • 三十、ASP.NET Core 如何支持Log4Net扩展?
  • 三十一、说说脚本启动ASP.NET Core Web项目
  • 三十二、说说Core WebApi的Swagger
  • 三十三、说说Core WebApi特性路由
  • 三十四、说说 restful 是什么
  • 三十五、说说脚本在请求Web CoreApi的时候,为什么会发生跨域问题?
  • 三十六、如何解决跨域问题?
  • 三十七、说说你了解到的鉴权授权技术
  • 三十八、请问对gRPC有了解吗,说说gRPC
  • 三十九、gRPC有几种模式?
  • 四十、说说如何使用C#实现简单模式gRPC
  • 四十一、说说gRPC的拦截器有哪些?
  • 四十二、gRPC作为一种被调用的服务,有什么保护安全的措施吗?
  • 四十三、简单介绍下EFCore
  • 四十四、说说EFCore查询的性能调优小技巧
  • 四十五、EFCore 如何通过数据生成实体和DbContext?
  • 四十六、说说对SaveChanges的理解
  • 四十七、说说对EFCore中EntityState的理解
  • 四十八、说说什么是导航属性和引用属性?


在这里插入图片描述

一、如何在ASP.NET Core中激活Session功能?

要在ASP.NET Core中激活 Session 功能,首先需要添加 Session 包,然后在Startup 类的 ConfigureServices 方法中添加 Session 服务,最后在 Configure 方法中调用 UseSession 中间件。

二、什么是中间件?

中间件是 ASP.NET Core 中用于处理请求和响应的组件,它们通过多个委托嵌套形成一个请求处理管道。中间件可以执行任务如身份验证、授权、错误处理等,并可决定传递请求到下一个中间件或直接结束请求。

三、ApplicationBuilder的Use和Run方法有什么区别?

Use 方法用于添加中间件到应用程序的请求处理管道中,并且可以调用链中的下一个中间件。Run 方法则是一个终结式的方法,用于指定当请求到达管道末端时执行的最终处理逻辑,它不调用下一个中间件。

四、如何使TagHelper在元素这一层上失效?

可以使用感叹号(!)语法来使 TagHelper 在特定元素上失效,这告诉 ASP.NET Core 忽略该元素的 TagHelper

五、什么是ASP.NET Core?

ASP.NET Core 是一个跨平台、高性能、开源的 Web 框架,用于构建现代化的云基础 Web 应用程序。它提供了模块化的设计,支持依赖注入、中间件、配置注入等特性,并且可以运行在 WindowsLinuxmacOS 上。

六、ASP.NET Core中AOP的支持有哪些?

ASP.NET Core 通过 Filter 支持面向切面编程(AOP),包括 IResourceFilterAuthorizeFilterActionFilterExceptionFilterResultFilter 等类型,这些 Filter 也被称为拦截器。

七、ASP.NET Core Filter的注册方式有哪些?

ASP.NET Core Filter 可以通过以下方式注册:

  • 方法注册:只对特定方法有效。
  • 控制器注册:对控制器中的所有方法有效。
  • 全局注册:对整个项目有效。

八、ASP.NET Core Filter如何支持依赖注入?

ASP.NET Core Filter 支持依赖注入,可以通过构造函数注入所需的服务,或者使用 TypeFilterServiceType 属性来实现依赖注入。

九、ASP.NET Core如何读取配置文件中的内容?

ASP.NET Core可以通过 IConfiguration 接口读取配置文件内容,也可以定义与配置文件结构一致的实体对象,并通过依赖注入将配置绑定到对象中。

十、ASP.NET Core有哪些好的功能?

ASP.NET Core的优点包括跨平台支持、无需依赖 IIS 运行、内置的中间件支持、配置灵活性、支持依赖注入、更好的性能和安全性、以及对 RESTful APIWeb Sockets 的原生支持等。

十一、ASP.NET Core跟ASP.NET比较有哪些更好的地方?

与ASP.NET相比,ASP.NET Core提供了更好的性能和可扩展性,支持跨平台运行,具有更小的内存占用和更快的响应时间,同时提供了更简洁和模块化的 API 设计。

十二、什么是meta packages?

Meta packages 是指包含所有 ASP.NET Core 依赖的单一包,例如Microsoft.AspNetCore,它使得开发者可以方便地引入整个框架的依赖。

十三、ASP.NET Core应用能够跟ASP.NET 4.x架构一起工作吗?

是的,ASP.NET Core应用可以与ASP.NET 4.x架构一起工作,它们可以共存并利用ASP.NET Core的跨平台和模块化特性。

十四、什么是ASP.NET Core的Startup类?

Startup 类是ASP.NET Core应用的入口点,用于配置服务和定义应用程序如何响应 HTTP 请求。这个类的 ConfigureServices 方法用于配置 依赖注入服务,而Configure 方法用于配置 请求处理管道

十五、Startup类的ConfigureServices方法有什么作用?

ConfigureServices 方法在 Startup 类中用于添加和配置应用程序的服务,这些服务可以通过依赖注入在应用程序中使用。

十六、Startup类的Configure方法有什么作用?

Configure 方法在 Startup 类中用于定义整个应用程序如何响应 HTTP 请求,包括配置中间件来处理路径、验证和会话等。

十七、ASP.NET Core管道里面的Map扩展有什么作用?

Map 扩展在ASP.NET Core管道中用于为特定的路径添加中间件,可以针对不同的路径配置不同的处理逻辑。

十八、ASP.NET Core里面的路径是如何处理的?

ASP.NET Core中的路径处理用于为进入的请求寻找处理函数,可以通过常规路径处理或属性路径处理来实现,支持 MapRoute 和属性路由等方式。

十九、ASP.NET Core工程里面有多少个工程文件?

ASP.NET Core工程中通常包含多个文件,包括 Startup.csProgram.csappsettings.jsonlaunchSettings.json 等,具体数量取决于项目配置和需求。

二十、什么是ASP.NET Core里面的TagHelper

TagHelper 是ASP.NET Core中用于在服务器端使用 Razor 视图引擎创建 HTML 元素的语法,它们提供了一种声明式的方式来编写服务器端代码。

二十一、说说.NET Core中_ViewImports文件的作用

_ViewImports.cshtml 文件在 .NET Core 中用于定义整个视图目录中所有视图共享的指令和命名空间,可以简化视图文件的内容。

二十二、如何在Controller中注入service?

Controller 中注入 service ,可以通过在 Controller 的构造函数中添加服务的依赖注入,然后通过构造函数参数的形式传入服务实例。

二十三、描述一下依赖注入后的服务生命周期?

ASP.NET Core中的依赖注入支持三种服务生命周期:

  • 单例(Singleton)
  • 瞬态(Transient)
  • 作用域(Scoped)
    单例在整个应用中只有一个实例,短暂每次请求都会创建新实例,作用域则是每个请求一个新实例。

二十四、说说ASP.NET Core内置容器的特点

ASP.NET Core内置容器 IServiceCollection 支持构造函数注入,提供三种生命周期管理:单例、瞬时和作用域。它是一个轻量级的依赖注入容器,用于管理服务的注册和解析。

二十五、ASP.NET Core中如何读取静态文件?

ASP.NET Core中可以通过中间件 UseStaticFiles 来配置读取静态文件,通常在Startup 类的 Configure 方法中进行配置。

二十六、ASP.NET Core项目如何设置IP地址和端口号?

ASP.NET Core项目可以通过 launchSettings.json 配置文件来设置不同的启动方式和相应的 IP 地址及端口号。

二十七、ASP.NET Core项目中,wwwroot文件夹内包含什么内容?

·wwwroot文件夹通常包含静态文件,如CSSJavaScript` 文件、字体文件和库文件等。

二十八、谈谈对ASP.NET Core kestrel的理解

Kestrel 是一个跨平台的 Web 服务器,适用于ASP.NET Core,支持 HTTP/2WebSocket 。它是ASP.NET Core项目模板中的默认Web服务器。

二十九、谈谈对Autofac的理解

Autofac 是一个依赖注入容器,支持ASP.NET Core的依赖注入系统,允许配置组件和服务的映射关系,并支持 AOP 扩展定制。

三十、ASP.NET Core 如何支持Log4Net扩展?

ASP.NET Core支持 Log4Net 扩展,可以通过 NuGet 引入 Log4Net 程序集,然后在 Startup 类的 Configure 方法中配置日志服务。

三十一、说说脚本启动ASP.NET Core Web项目

可以通过命令行工具启动ASP.NET Core Web项目,使用 dotnet run 命令或 dotnet <dll文件> --urls=http://ip地址:端口号命令

三十二、说说Core WebApi的Swagger

Swagger 是一个 API 文档生成和测试工具,可以在ASP.NET Core Web API项目中集成 Swagger ,以生成和展示 API 文档,支持 API 测试。

三十三、说说Core WebApi特性路由

特性路由是ASP.NET Core Web API中的一种路由方式,通过在控制器或动作上使用路由特性来定义路由模板,实现更灵活的路由配置。

三十四、说说 restful 是什么

restful 是一种设计风格,用于构建网络应用,它使用标准的 HTTP 方法,如GET、POST、PUT、DELETE 等,来执行资源的操作,强调无状态、统一接口和可缓存。

三十五、说说脚本在请求Web CoreApi的时候,为什么会发生跨域问题?

跨域问题是由于浏览器的 同源策略 导致的,当请求的协议、域名或端口与当前页面不同,浏览器会阻止请求以保护用户安全。

三十六、如何解决跨域问题?

解决跨域问题的方法包括:

  • 使用JSONP技术,通过 script 标签发起请求。
  • 使用CORS(Cross-Origin Resource Sharing)策略,服务器端设置响应头。
  • Access-Control-Allow-Origin。
  • 使用代理服务器,将请求转发到目标服务器。
  • 使用PostMessage进行跨文档通信。

三十七、说说你了解到的鉴权授权技术

鉴权授权技术包括传统的基于 SessionCookie 的鉴权,以及基于 Token 的鉴权,如 JWT(JSON Web Tokens)OAuth 。这些技术用于验证用户身份并控制用户对资源的访问权限。

三十八、请问对gRPC有了解吗,说说gRPC

gRPC 是一个高性能、开源和通用的 RPC 框架,由Google开发,面向移动和HTTP/2 设计。它支持多种语言,包括C、Java、Go、C#等。

三十九、gRPC有几种模式?

gRPC 有四种模式:

  • 简单模式:使用参数和返回值进行服务器与客户端的数据传递。
  • 客户端流模式:客户端向服务器发送数据流。
  • 服务器端流模式:服务器向客户端返回数据流。
  • 双向流模式:客户端和服务器可以同时发送和接收数据流。

四十、说说如何使用C#实现简单模式gRPC

使用 C# 实现简单模式 gRPC,需要:

  • 定义 .proto 文件,描述服务和消息结构。
  • 使用 gRPC 工具生成 C# 类文件。
  • 创建服务端和客户端代码,实现或调用 gRPC 方法。

四十一、说说gRPC的拦截器有哪些?

gRPC的拦截器包括:

  • 客户端拦截器:BlockingUnaryCall、AsyncUnaryCall、AsyncClientStreamingCall、AsyncServerStreamingCall、AsyncDuplexStreamingCall。
  • 服务端拦截器:UnaryServerHandler、ClientStreamingServerHandler、ServerStreamingServerHandler、DuplexStreamingServerHandler。

四十二、gRPC作为一种被调用的服务,有什么保护安全的措施吗?

·gRPC 支持多种安全措施,包括:

  • 使用SSL/TLS进行加密传输。
  • 支持JWT和OAuth 2.0等认证机制。
  • 可以使用API密钥进行请求验证。
  • 支持mTLS(双向TLS)进行服务端和客户端的身份验证。

四十三、简单介绍下EFCore

EF Core(Entity Framework Core)是一个适用于.NET的轻量级、跨平台的 ORM 框架,支持 LINQ 查询、变更追踪、更新以及结构描述转移。

四十四、说说EFCore查询的性能调优小技巧

EF Core查询性能调优技巧包括:

  • 使用 AsNoTracking() 方法,避免在内存中创建对象副本。
  • 多使用 Find() 方法,利用内存缓存提高查询效率。
  • 避免在查询中使用 Select() 方法加载不必要的数据。
  • 使用 Include() 方法预先加载相关数据,避免 N+1 查询问题。
  • 使用索引提高数据库查询效率。

四十五、EFCore 如何通过数据生成实体和DbContext?

EF Core 可以通过以下步骤通过数据生成实体和DbContext:

  • 使用 Scaffold-DbContext 命令,指定数据库连接字符串和要使用的提供者。
  • 指定输出目录和 DbContext 类名。
  • 执行命令,EF Core将根据数据库表生成对应的实体类和 DbContext 类。

四十六、说说对SaveChanges的理解

SaveChanges 是EF Core中用于将更改提交到数据库的方法。它将跟踪的实体的添加、修改和删除操作一次性应用到数据库中。

四十七、说说对EFCore中EntityState的理解

EntityState 是EF Core中用于跟踪实体状态的枚举,包括:

  • Detached:未被跟踪。
  • Unchanged:被跟踪且未修改。
  • Modified:被跟踪且已修改。
  • Added:被跟踪且新添加。
  • Deleted:被跟踪且标记为删除。

四十八、说说什么是导航属性和引用属性?

  • 导航属性是EF Core中用于在两个实体之间导航关系的方法。
  • 引用属性(EntityReference)用于一对一或零或一关系,而导航属性(EntityCollection)用于一对多或多对多关系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26111.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用DeepSeek实现自动化编程:类的自动生成

目录 简述 1. 通过注释生成C类 1.1 模糊生成 1.2 把控细节&#xff0c;让结果更精准 1.3 让DeepSeek自动生成代码 2. 验证DeepSeek自动生成的代码 2.1 安装SQLite命令行工具 2.2 验证DeepSeek代码 3. 测试代码下载 简述 在现代软件开发中&#xff0c;自动化编程工具如…

MapReduce编程模型

MapReduce编程模型 理解MapReduce编程模型独立完成一个MapReduce程序并运行成功了解MapReduce工程流程掌握并描述出shuffle全过程&#xff08;面试&#xff09;独立编写课堂及作业中的MR程序理解并解决数据倾斜 1. MapReduce编程模型 Hadoop架构图 Hadoop由HDFS分布式存储、M…

【实战 ES】实战 Elasticsearch:快速上手与深度实践-1.3.2Kibana可视化初探

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 10分钟快速部署Kibana可视化平台1. Kibana与Elasticsearch关系解析1.1 架构关系示意图1.2 核心功能矩阵 2. 系统环境预检2.1 硬件资源配置2.2 软件依赖清单 3. Docker快速部…

基于YOLO11深度学习的遥感视角农田检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割、人工智能

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

Redis7——进阶篇(一)

前言&#xff1a;此篇文章系本人学习过程中记录下来的笔记&#xff0c;里面难免会有不少欠缺的地方&#xff0c;诚心期待大家多多给予指教。 基础篇&#xff1a; Redis&#xff08;一&#xff09;Redis&#xff08;二&#xff09;Redis&#xff08;三&#xff09;Redis&#x…

ST-LINK端口连接失败,启动GDB server失败的问题处理方法,有效

目录 1. 问题描述2. 解决办法2.1 后台关闭2.2 后台关闭无法找到ST进程或者关闭后未解决 1. 问题描述 报错&#xff1a; Failed to bind to port 61235, error code -1: No error Failure starting SWV server on TCP port: 61235 Failed to bind to port 61234, error code -1…

Helix——Figure 02发布的通用人形机器人控制VLA:不用微调即可做多个任务的快与慢双系统,让两个机器人协作干活(含清华HiRT详解)

前言 过去一周&#xff0c;我花了很大的心思、力气&#xff0c;把deepseek的GRPO、MLA算法的代码解析通透&#xff0c;比如GRPO与PPO的详细对比&#xff0c;再比如MLA中&#xff0c;图片 公式 代码的一一对应&#xff0c;详见此专栏《火爆全球的DeepSeek系列模型》 2.20日晚&…

性能测试测试策略制定|知名软件测评机构经验分享

随着互联网产品的普及&#xff0c;产品面对的用户量级也越来越大&#xff0c;能抗住指数级增长的瞬间访问量以及交易量是保障购物体验是否顺畅的至关重要的一环&#xff0c;而我们的性能测试恰恰也是为此而存在的。 性能测试是什么呢&#xff1f;性能测试要怎么测呢&#xff1f…

BigDecimal 为什么可以不丢失精度?

本文已收录至Java面试网站&#xff1a;https://topjavaer.cn 大家好&#xff0c;今天咱们来聊聊 Java 中的 BigDecimal。在金融领域&#xff0c;数据的精确性相当重要&#xff0c;一个小数点的误差可能就意味着几百万甚至几千万的损失。而 BigDecimal 就是专门用来解决这种高精…

杰发科技AC7801——滴答定时器获取时间戳

1. 滴答定时器 杰发科技7801内部有一个滴答定时器&#xff0c;该定时器是M0核自带的&#xff0c;因此可以直接用该定时器来获取时间戳。 同样&#xff0c;7803也可以使用该方式获取时间戳。 2. 滴答定时器原理 SysTick是一个24位的递减计数器&#xff0c;它从预设的重装载值…

Cursor+pycharm接入Codeuim(免费版),Tab自动补全功能平替

如题&#xff0c;笔者在Cursor中使用pycharm写python程序&#xff0c;试用期到了Tab自动补全功能就不能用了&#xff0c;安装Codeuim插件可以代替这个功能。步骤如下&#xff1a; 1. 在应用商店中搜索扩展Codeuim&#xff0c;下载安装 2. 安装完成后左下角会弹出提示框&#x…

第十四届蓝桥杯大赛软件赛国赛C/C++大学C组

A 【跑步计划——日期问题】-CSDN博客 B 【残缺的数字】-CSDN博客 C 题目 代码 #include <bits/stdc.h> using namespace std;void change(int &x) {int sum 0, t x;while(t){sum t % 10;t / 10;}x - sum; } int main() {int n;cin >> n;int ans 0;…

lua基础语法学习

lua基础语法学习 文章目录 lua基础语法学习1. 基础2. 输入输出3. 分支结构与循环结构4. 函数5. 元表与元方法6. 面向对象 1. 基础 注释 --单行注释--[[ 多行注释 --]]标识符 标识符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上 0 个或多个字母&#xff0c;下划线&…

Android APK组成编译打包流程详解

Android APK&#xff08;Android Package&#xff09;是 Android 应用的安装包文件&#xff0c;其组成和打包流程涉及多个步骤和文件结构。以下是详细的说明&#xff1a; 一、APK 的组成 APK 是一个 ZIP 格式的压缩包&#xff0c;包含应用运行所需的所有文件。解压后主要包含以…

【MySQL篇】数据库基础

目录 1&#xff0c;什么是数据库&#xff1f; 2&#xff0c;主流数据库 3&#xff0c;MySQL介绍 1&#xff0c;MySQL架构 2&#xff0c;SQL分类 3&#xff0c;MySQL存储引擎 1&#xff0c;什么是数据库&#xff1f; 数据库&#xff08;Database&#xff0c;简称DB&#xf…

卷积神经网络(cnn,类似lenet-1,八)

我们第一层用卷积核&#xff0c;前面已经成功&#xff0c;现在我们用两层卷积核&#xff1a; 结构如下&#xff0c;是不是很想lenet-1&#xff0c;其实我们24年就实现了sigmoid版本的&#xff1a; cnn突破九&#xff08;我们的五层卷积核bpnet网络就是lenet-1&#xff09;-CS…

uniapp中使用leaferui使用Canvas绘制复杂异形表格的实现方法

需求&#xff1a; 如下图&#xff0c;要实现左图的样式&#xff0c;先实现框架&#xff0c;文字到时候 往里填就行了&#xff0c;原来的解决方案是想用css,html来实现&#xff0c;发现实现起来蛮麻烦的。我也没找到合适的实现方法&#xff0c;最后换使用canvas来实现&#xff…

Spring Cloud — 消息驱动 Stream

Spring Cloud Stream 是让微服务更容易在应用中实现消息的发布和订阅处理的框架。Stream 支持与多种消息中间件整合&#xff0c;如Kafka、RibbitMQ等。 本文使用的是Kafka消息中间件&#xff0c;依赖文件为&#xff1a; <dependency><groupId>org.springframewor…

网络安全应急响应中主机历史命令被删除 网络安全事件应急响应

17.1 网络安全应急响应概述 “居安思危&#xff0c;思则有备&#xff0c;有备无患。”网络安全应急响应是针对潜在发生的网络安全事件而采取的网络安全措施。本节主要阐述网络安全响应的概念、网络安全应急响应的发展、网络安全应急响应的相关要求。 17.1.1 网络安全应急响应概…

QT——c++界面编程库

非界面编程 QT编译的时候&#xff0c;依赖于 .pro 配置文件&#xff1a; SOURCES: 所有需要参与编译的 .cpp 源文件 HEADERS:所有需要参与编译的.h 头文件 QT&#xff1a;所有需要参与编译的 QT函数库 .pro文件一旦修改&#xff0c;注意需要键盘按 ctrls 才能加载最新的配置文…