在dot net core中,我们不需要关心如何释放这些服务, 因为系统会帮我们释放掉。有三种服务的生命周期。

  单实例服务, 通过add singleton方法来添加。在注册时即创建服务, 在随后的请求中都使用这一个服务。

  短暂服务, 通过add transient方法来添加。是一种轻量级的服务,用于无状态服务的操作。

  作用域服务,一个新的请求会创建一个服务实例。使用add scoped方法来添加。

今天 陕西优就业小编给大家分享一篇相关面试题,希望对大家有用。

第1题:什么是ASP net core?

  首先ASP net core不是 asp net的升级版本。它遵循了dot net的标准架构, 可以运行于多个操作系统上。它更快,更容易配置,更加模块化,可扩展性更强。

  第2题:asp dot core有哪些好的功能?

  第一是依赖注入。

  第二是日志系统架构。

  第三是引入了一个跨平台的网络服务器,kestrel。可以没有iis, apache和nginx就可以单独运行。

  第四是可以使用命令行创建应用。

  第五是使用APP settings json file来配置工程。

  第六是使用start up来注册服务。

  第七是更好的支持异步编程。

  第八是支持web socket和signal IR。

  第九是对于跨网站的请求的预防和保护机制。

  第3题:dot net core跟dot net比较有哪些更好的地方?

  第一是跨平台,它可以运行在三大操作系统上面,windows, Linux和MAC。

  第二是对架构本身安装没有依赖,因为所有的依赖都跟程序本身在一起。

  第三是dot net core处理请求的效率更高,能够处理更多的请求。

  第四是dot net core有更多的安装配置方法。

  第4题:什么是meta packages?

  Meta packages是指包含所有ASP dot net code依赖的一个包。叫做Microsoft.AspNetCore

  第5题:don net core应用能够跟dot net 4.x架构一起工作吗?

  可以。Dot net core应用可以跟标准的dot net 库一起工作。

  第6题:什么是dot net core的startup class?

  Startup class是dot net core应用的入口。所有的dot net core应用必须有这个class 这个类用来配置应用。

  这个类的调用是在program main函数里面进行配置的。类的名字可以自己定义。

  第7题:Startup class的config service方法有什么作用?

  在这个方法里我们可以添加一些service进入依赖注入容器。

  第8题:startup class的configure方法有什么作用?

  这个方法来定义整个应用如何响应HTTP请求。它有几个比较重要的参数,application builder,Hosting environment, logo factory,在这里我们可以配置一些中间件用来处理路径,验证和session等等。

  第9题:什么是中间件?

  中间件在这里是指注入到应用中处理请求和响应的组件。

  第10题:application builder的use和run方法有什么区别?

  这两个方法都在start up class的configure方法里面调用。都是用来向应用请求管道里面添加中间件的。Use方法可以调用下一个中间件的添加,而run不会。

  第11题:dot net core 管道里面的map拓展有什么作用?

  可以针对不同的路径添加不同的中间件。

  第12题:dot net core里面的路径是如何处理的?

  路径处理是用来为进入的请求寻找处理函数的机制。所有的路径在函数运行开始时进行注册。

  主要有两种路径处理方式,常规路径处理和属性路径处理。常规路径处理就是用MapRoute的方式设定调用路径,属性路径处理是指在调用函数的上方设定一个路径属性。

  第13题:如何在dot net core中激活session功能?

  首先要添加session包. 其次要在config service方法里面添加session。然后又在configure方法里面调用usesession。

  第14题:dot net core工程里面有多少个工程文件?

  global, launch setting,app settings,bundle config,bower, package。

  第15题:什么是dot net core里面的tag helper?

  Tag helper用来在服务器端使用Razor视图引擎创建html元素的。

  第16题:如何使tag helper在元素这一层上失效?

  使用叹号。

  第17题:什么是Razor页面?

  是dot net core中支持ASP网页表格的一种开发模型。@page 作为页面的起始标志。

  第18题:如何在Razor页面中实现数据模型绑定?

  使用bindproperty属性。

  第19题:如何在controller中注入service?

  在config services方法中配置这个service。

  在controller的构造函数中,添加这个依赖注入。

---------------------------------------------------------------------------------------------------

  第20题:描述一下依赖注入后的服务生命周期?

asp.net core主要提供了三种依赖注入的方式

其中AddTransient与AddSingleton比较好区别

AddTransient瞬时模式:每次都获取一个新的实例

AddSingleton单例模式:每次都获取同一个实例

而AddTransient与AddScoped的区别更不容易区别一点

首先这两种方式每次请求得到的都不是同一个对象,从这点看会发现这两个都一样。

但是我们可以继续分细一点,虽然不同的请求得到的结果不同,但是我们可以在同一次请求中去获取多次实例测试。

  • AddTransient注入方式获取两次实例
services.AddTransient<IUserBLL, UserBll>();

可以看到瞬时模式即使同一次请求中也是不同的对象

  • AddScoped注入方式获取两次实例
services.AddScoped<IUserBLL, UserBll>();

可以发现AddScoped在同一次请求中,获取多次对象得到的是同一个对象

小总结:

AddTransient瞬时模式:每次请求,都获取一个新的实例。即使同一个请求获取多次也会是不同的实例

AddScoped:每次请求,都获取一个新的实例。同一个请求获取多次会得到相同的实例

AddSingleton单例模式:每次都获取同一个实例

ASP net core面试题汇总及答案的更多相关文章

  1. 最新.NET Core面试题汇总

    这几天给.neter们整理了26道.NET Core面试题,初衷也很简单,就是希望在面试的时候能够帮助到大家,减轻大家的负担和节省时间.对于没有跳槽打算的也可以复习一下相关知识点,就当是查缺补漏! 对 ...

  2. C# & ASP.NET Core 入门官方资料汇总

    借助给公司实习生培训事宜,整理了一些微软官方的适合新同学入门的资料,这里分享一下: 工具: Visual Studio 2017 Community 版本下载地址:https://www.visual ...

  3. .NET 面试题汇总(带答案)

    1.维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么? 答:尽可能用约束(包括CHECK.主键.唯一键.外键.非空字段)实现,这种方式的效率最好:其次用触发器,这种方式可以保证无论何 ...

  4. [07]ASP.NET Core 进程外(out-of-process)托管

    ASP.NET Core 进程外(out-of-process)托管 本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP) 文章会随着版本进行更新,关注我获取最新版本 本文出自<从 ...

  5. ASP.NET Core 进程外(out-of-process)托管

    ASP.NET Core 进程外(out-of-process)托管 在本节中,我们将讨论 ASP.NET Core 中的Out Of Process Hosting. ASP.NET Core 进程 ...

  6. 【ASP.NET Core】EF Core - “影子属性” 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1

    [ASP.NET Core]EF Core - “影子属性”   有朋友说老周近来博客更新较慢,确实有些慢,因为有些 bug 要研究,另外就是老周把部分内容转到直播上面,所以写博客的内容减少了一点. ...

  7. Linux面试题汇总答案

    转自:小女生的Linux技术~~~Linux面试题汇总答案~~ 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的 ...

  8. ASP.NET Core文章汇总

    现有Asp.Net Core 文章资料,2016 3-20月汇总如下 ASP.NET Core 1.0 与 .NET Core 1.0 基础概述 http://www.cnblogs.com/Irvi ...

  9. php面试题汇总二(基础篇附答案)

    介绍一些php常见面试题及答案,都是平时面试的时候经常会遇到的,小伙伴们仔细了解下吧.接着上一篇php面试题汇总一(基础篇附答案) 1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义 ...

随机推荐

  1. Python使用笔记005-文件操作(二)

    1.1 打开文件模式 # r r+ r+读是没问题的,写的话,会覆盖原来的内容,文件不存在时会报错# w w+ w+用来新的文件没问题,旧的文件会覆盖原来的内容# a a+ a+写是追加,读不到是因为 ...

  2. 替代Infinity绝佳的自主开发chrome插件

    最近闲来无事在好朋(da)友(shen)的帮助下开发一个chrome插件,目的是为了替换infinity主页插件, 当然在此也推荐一波infinity确实不错,界面和易用性都是非常好用的水准了. 主页 ...

  3. pytorch中网络特征图(feture map)、卷积核权重、卷积核最匹配样本、类别激活图(Class Activation Map/CAM)、网络结构的可视化方法

    目录 0,可视化的重要性: 1,特征图(feture map) 2,卷积核权重 3,卷积核最匹配样本 4,类别激活图(Class Activation Map/CAM) 5,网络结构的可视化 0,可视 ...

  4. 【Java基础上】一、简述Java

    一.简述Java ​ Java是一种高级的面向对象的程序语言,在此处,不需要了解什么叫做面向对象,因为后面的文章中自然会谈到这方面的论述.那么,Java就是一个计算机的编程语言. 1.1 Java的历 ...

  5. Linux if[......] then ......else...... fi

    条件表达式 if [ -f  file ]    如果文件存在if [ -d ...   ]    如果目录存在if [ -s file  ]    如果文件存在且非空 if [ -r file  ] ...

  6. Python3.6安装protobuf模块+将proto文件转换成pb2.py文件

    Python对版本的对应即为苛刻,笔者第一次安装时遇到了很多坑,比如无法将proto文件转换成py文件,转换了之后文件无法使用,网上各种各样的解决办法都没有讲到重点.其实会出现各种各样的问题是由于版本 ...

  7. 【小工具系列】Python + OpenCV 图片序列转换成视频

    图片序列转换成视频 最近一直在找一个工具,能够将一堆图片转化成视频.网上找了一些小软件,还有 win10 的照片自带的视频制作功能,都不是很满意. 又不想下载那些专业的视频剪辑软件大材小用. 然后找到 ...

  8. 大数据学习(14)—— HBase进阶

    HBase读写流程 在网上找了一张图,这个画的比较简单,就拿这个图来说吧. 写流程 1.当Client发起一个Put请求时,首先访问Zookeeper获取hbase:meta表. 2.从hbase:m ...

  9. C# 事件与继承

    在窗体编程过程中,常常会封装一个基类,包含未来业务中常用的属性.方法.委托.事件等,但是事件作为一个特殊的委托,只能在声明类中调用,派生类都不可以调用,所以在基类中必须实现一个虚函数,实现事件的调用, ...

  10. PPT学习总结

    [一]关注 1. 内容 2. 结构 3. 配色 4. 素材 5. 构图 6. 动画 [二]技巧 1. 颜色对比 2. 动画突出 [三]参考 https://www.zhihu.com/question ...