版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年.net开发笔试题及答案
一、单项选择题(10题,每题2分)1.C12中,以下哪项是primaryconstructor的正确用法?A.必须显式定义构造函数才能使用B.可以在类中直接声明参数作为primaryconstructorC.仅支持值类型参数D.不能与显式构造函数共存2.ASP.NETCore请求管道中,中间件的执行顺序遵循以下哪项原则?A.注册顺序与执行顺序相反B.注册顺序与执行顺序一致C.由中间件的优先级决定,与注册顺序无关D.仅执行最后注册的中间件3.EFCore中,执行无跟踪查询的方法是?A.AsTracking()B.AsNoTracking()C.TrackChanges()D.NoTracking()4.BlazorServer应用的默认通信协议是?A.WebSocketB.HTTP/2C.SignalRD.gRPC5.gRPC服务定义文件的扩展名是?A..grpcB..protoC..serviceD..contract6.以下关于HttpClientFactory的说法错误的是?A.自动管理HttpClient实例的生命周期B.支持注册命名客户端C.每次请求都会创建新的HttpClient实例D.可配置客户端的Handler链7.以下哪项关于Async/Await的描述正确?A.只能用于IO密集型任务B.会阻塞当前线程C.可提高CPU密集型任务的吞吐量D.必须返回Task类型8.LINQ中,以下哪个方法会立即执行查询?A.Where()B.Select()C.ToList()D.OrderBy()9.ASP.NETCore依赖注入中,以下哪种生命周期适用于跨请求共享的无状态服务?A.TransientB.ScopedC.SingletonD.Instance10.JWT的三个部分之间用什么符号分隔?A.逗号B.点C.分号D.空格二、填空题(10题,每题2分)1.C12中用于简化类型声明、支持默认接口实现扩展的特性是____。2.ASP.NETCore中,构建请求管道的核心类是____。3.EFCore8中新增的用于批量更新/删除的方法是____。4.BlazorWebAssembly应用的运行环境是____。5.gRPC中用于定义服务方法的关键字是____。6.HttpClientFactory注册命名客户端的方法是____。7.实现异步方法时,方法名通常以____结尾(按约定)。8.LINQ中,延迟执行的查询会在____时执行。9.依赖注入中,Scoped生命周期的服务在____中创建一次。10.JWT的签名部分用于验证____。三、判断题(10题,每题2分)1.C12的primaryconstructor支持在接口中使用。()2.ASP.NETCore中间件的Use()方法注册的中间件会在Invoke()方法中被调用。()3.EFCore的ChangeTracker会自动跟踪所有查询到的实体(默认配置下)。()4.BlazorServer应用需要在客户端安装.NET运行时。()5.gRPC支持跨域请求(CORS)。()6.HttpClientFactory可以避免HttpClient的套接字耗尽问题。()7.Async/Await方法中,await关键字会释放当前线程。()8.LINQ的GroupBy()方法是延迟执行的。()9.依赖注入中的Transient服务每次请求都会创建新实例。()10.JWT的Payload部分包含敏感信息时,必须加密。()四、简答题(4题,每题5分)1.简述C12中PrimaryConstructor的核心优势及典型使用场景。2.对比BlazorServer与BlazorWebAssembly的核心区别(至少3点)。3.说明EFCore中跟踪查询与无跟踪查询的适用场景差异。4.简述ASP.NETCore中依赖注入的三种核心生命周期及其适用场景。五、讨论题(4题,每题5分)1.如何从多维度优化ASP.NETCore应用的性能?请至少列举4个关键方向并说明实现思路。2.讨论JWT在ASP.NETCore中的实现步骤及安全注意事项(至少3点)。3.如何在EFCore中实现高效的批量操作?请说明常用方法及适用场景。4.讨论gRPC在微服务架构中的优势,以及与RESTAPI的核心对比(至少3点)。答案及解析一、单项选择题答案1.B解析:C12的primaryconstructor可直接在类声明中声明参数,无需显式构造函数,支持引用类型,可与显式构造函数共存(显式构造函数需调用this())。2.A解析:ASP.NETCore中间件执行顺序与注册顺序相反(Use()注册的中间件,先注册的后执行)。3.B解析:AsNoTracking()方法用于执行无跟踪查询,避免ChangeTracker的开销。4.C解析:BlazorServer默认使用SignalR进行客户端与服务器的实时通信。5.B解析:gRPC服务定义文件为.proto格式,基于ProtocolBuffers。6.C解析:HttpClientFactory不会每次创建新实例,而是复用Handler,避免套接字耗尽。7.D解析:Async/Await可用于IO密集型和部分CPU密集型(配合Task.Run),不阻塞线程,必须返回Task或Task<T>。8.C解析:ToList()是立即执行方法,Where/Select/OrderBy为延迟执行。9.C解析:Singleton生命周期的服务跨请求共享,适用于无状态服务。10.B解析:JWT由Header.Payload.Signature三部分组成,用点分隔。二、填空题答案1.接口默认实现扩展(或“默认接口成员”)2.WebApplication3.ExecuteUpdate()/ExecuteDelete()4.浏览器(客户端)5.rpc6.AddHttpClient<TClient,TImplementation>(name)7.Async8.枚举(或“迭代”“访问结果”)9.单个HTTP请求(或“Scoped范围”)10.令牌的完整性与真实性三、判断题答案1.错解析:C12的primaryconstructor仅支持类,不支持接口。2.对解析:Use()注册的中间件实现了InvokeAsync方法,按顺序调用。3.对解析:默认配置下,EFCore查询的实体都会被ChangeTracker跟踪。4.错解析:BlazorServer仅需浏览器,服务器需.NET运行时。5.对解析:gRPC可通过配置CORS中间件支持跨域。6.对解析:HttpClientFactory复用Handler,避免过多HttpClient导致的套接字耗尽。7.对解析:await会释放当前线程,等待IO完成后再恢复执行。8.对解析:GroupBy()属于延迟执行方法,仅在访问结果时执行。9.对解析:Transient服务每次解析都会创建新实例(包括同一请求内多次解析)。10.错解析:JWTPayload是base64编码,不是加密,敏感信息需加密(如用JWE)。四、简答题答案1.C12PrimaryConstructor优势:简化类构造,减少冗余代码;支持直接在类声明中定义参数,无需显式构造函数;可与显式构造函数结合(需调用this())。典型场景:数据传输对象(DTO)、简单实体类、依赖注入的服务类(简化构造函数注入)。例如:publicclassUser(intId,stringName),直接声明参数作为构造函数参数,无需手动写构造函数。2.BlazorServervsWebAssembly区别:①运行环境:Server在服务器,通过SignalR通信;WASM在浏览器客户端,需下载.NET运行时。②性能:Server延迟依赖网络;WASM首屏加载稍慢,后续交互快。③部署:Server需部署服务器应用;WASM可部署到静态服务器(如CDN)。④离线支持:Server不支持离线;WASM支持离线(需PWA)。3.跟踪查询适用场景:需要更新实体并保存到数据库(ChangeTracker自动跟踪变化,SaveChanges时自动更新);需要关联加载相关实体(如Include())。无跟踪查询适用场景:仅读取数据无需更新(减少ChangeTracker开销,提升性能);大量数据读取(避免内存占用过高);只读操作(如报表查询)。4.三种生命周期:①Transient:每次解析创建新实例,适用于轻量级、无状态的服务(如工具类)。②Scoped:单个请求内创建一次,适用于与请求相关的服务(如用户上下文、数据库上下文)。③Singleton:应用启动时创建一次,跨请求共享,适用于无状态、全局服务(如配置服务、缓存服务)。五、讨论题答案1.性能优化方向:①缓存:使用MemoryCache或Redis缓存频繁访问的数据(如首页数据),配置过期策略。②异步编程:将IO密集型操作(如数据库、HTTP请求)改为异步(Async/Await),提升吞吐量。③数据库优化:使用EFCore的无跟踪查询、批量操作(ExecuteUpdate)、索引优化、避免N+1查询(Include/ThenInclude)。④中间件优化:移除不必要的中间件,压缩响应(UseResponseCompression),启用HTTP/2。⑤静态资源优化:压缩静态文件(CSS/JS),使用CDN分发。2.JWT实现步骤:①配置JWT认证:在Program.cs中AddAuthentication(JwtBearerDefaults.AuthenticationScheme),配置TokenValidationParameters(Issuer、Audience、SecretKey)。②生成Token:创建ClaimsIdentity,使用JwtSecurityTokenHandler生成Token(设置过期时间、Issuer等)。安全注意事项:①使用强密钥(至少32字节),避免硬编码;②设置合理的过期时间(短过期+刷新Token);③Payload不存储敏感信息(如密码);④验证Token的签名、Issuer、Audience;⑤避免在客户端存储Token的明文(如用HttpOnlyCookie)。3.EFCore批量操作方法:①ExecuteUpdate()/ExecuteDelete():EFCore8新增,直接在数据库端执行批量更新/删除,无需加载实体到内存,性能高。适用场景:批量更新状态、删除过期数据。②BulkInsert:使用第三方库(如EntityFrameworkCore.BulkExtensions)或EFCore的AddRange()+SaveChanges(注意:AddRange是客户端批量,适合小批量)。③原生SQL:执行参数化原生SQL批量操作(如INSERTINTO...SELECT),适用于复杂批量逻辑。注意:原生SQL需避免注入风险。4.gRPCvsR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 落布工安全防护模拟考核试卷含答案
- 冲压工段不合格品隔离处置流程
- 注塑线短单产能负荷分析报告
- 慢阻肺患者吸入治疗规范
- 焊接区机器人姿态校准方案
- 注塑设备电气故障应急预案
- Go服务容错链路分级策略规范
- 犬心脏杂音分级诊断实施方案
- 热处理车间温度分布控制计划
- 地块临时道路施工组织安排方案
- 湖北省宜昌市2026届高三下4月考数学试题含解析
- 财务部门工作流程手册
- T∕CAMDI 165-2025 液相色谱用于临床维生素A、维生素E、25-羟基维生素D2 D3检测通 用技术要求
- 2026年1月浙江省高考(首考)化学试题(含标准答案)
- 房地产 -2025年下半年长沙写字楼市场报告
- 矿厂电工面试题及答案
- 《北京市商品房现房买卖合同示范文本(2025年修订 公开征求意见稿)》
- 2025 ESICM临床实践指南:成人危重患者的液体治疗-第2部分:复苏液体量解读
- 安全生产管理人员准入制度
- 2026年云南省政府采购评审专家考前冲刺备考300题(含答案)
- 国家安全法课件1
评论
0/150
提交评论