当前位置: 首页 > news >正文

手机制作企业网站Python建网站的步骤

手机制作企业网站,Python建网站的步骤,新东方在线教育平台官网,重庆官方网站查询系统.NetCore内置IOC容器ServiceCollection一、IOC介绍IOC#xff1a;全名(Inversion of Control)-控制反转IOC意味着我们将对象的创建控制权交给了外部容器#xff0c;我们不管它是如何创建的#xff0c;我们只需要知道#xff0c;当我们想要某个实例时#xff0c;我们可以直….NetCore内置IOC容器ServiceCollection一、IOC介绍IOC全名(Inversion of Control)-控制反转IOC意味着我们将对象的创建控制权交给了外部容器我们不管它是如何创建的我们只需要知道当我们想要某个实例时我们可以直接从这个外部容器中去拿,而再也不需要我们去new了充分体现了DIP(依赖倒置原则)也体现了我们经常挂在嘴边的面向接口编程。DI全名(Dependency Injection)-依赖注入DI意味着将类型之间的依赖关系注入到DI容器中在之前的.Net Framework中并没有集成IOC虽然Microsoft自己有一套Unity想要使用IOCDI时还需要我们自己去安装包进行三部曲等等各种操作比较流行的IOC容器技术Autofac、Unity、NInject。。。二、.NetCore内置IOC容器ServiceCollection1、打开NuGet包管理器安装 Microsoft.Extensions.DependencyInjection 包2、实现代码如下public interface ISqlHelper {void GetAll(); } public class SqlServerHelper : ISqlHelper {public void GetAll(){Console.WriteLine(this is typeof(SqlServerHelper));} } static void Main(string[] args) {ServiceCollection services  new ServiceCollection();services.AddTransientISqlHelper, SqlServerHelper();var providerservices.BuildServiceProvider();var sqlHelperprovider.GetServiceISqlHelper();sqlHelper.GetAll();Console.ReadKey(); }运行结果输出this is SqlServerHelper当我们在执行业务逻辑时想要写入一些日志Log必然会当然依赖这个类那么会形成了SqlHelper类与Log类之前的依赖关系我们可以将之前的依赖关系转移到DI容器中也就是依赖注入DI然后在DI容器获取服务对象示例代码如下public interface ISqlHelper  {void GetAll(); } public class SqlServerHelper : ISqlHelper  {private readonly ILog _ilog;public SqlServerHelper(ILog ilog) {_ilog  ilog;}public void GetAll() {_ilog.LogInfo($我在{typeof(SqlServerHelper).Name}中我是ilog);Console.WriteLine(this is   typeof(SqlServerHelper).Name);} } public interface ILog  {void LogInfo(string msg); } public class Log : ILog  {public void LogInfo(string msg) {Console.WriteLine(msg);} } private static void Main(string[] args)  {services.AddTransientILog, Log();//瞬时注入services.AddTransientISqlHelper, SqlServerHelper();//瞬时每次的实例都是一个新的对象var provider  services.BuildServiceProvider();//构建服务提供商var sqlHelper  provider.GetServiceISqlHelper();//获取我们需要的服务实例sqlHelper.GetAll();Console.ReadKey(); }如果如下我在SqlServerHelper中我是ilog this is SqlServerHelper三、组件的生命周期1、Transient瞬时每次的实例都是一个新的对象2、Singleton单例全局唯一实例3、Scoped作用域在一个作用域中唯一实例比如在Asp.Net Core应用程序中一次请求相当于一个ScopedTransient瞬时每次的实例都是一个新的对象ServiceCollection services  new ServiceCollection(); services.AddTransientILog, Log(); services.AddTransientISqlHelper, SqlServerHelper(); var provider  services.BuildServiceProvider(); var sqlHelper  provider.GetServiceISqlHelper();//首次获取要使用的服务 sqlHelper  provider.GetServiceISqlHelper();//获取新的服务 sqlHelper.GetAll();瞬时结果如下瞬时结果Singleton单例全局唯一实例ServiceCollection services  new ServiceCollection(); services.AddSingletonILog, Log(); services.AddSingletonISqlHelper, SqlServerHelper(); var provider  services.BuildServiceProvider(); var sqlHelper  provider.GetServiceISqlHelper(); sqlHelper  provider.GetServiceISqlHelper(); sqlHelper.GetAll(); Console.ReadKey();单例Scoped作用域在一个作用域中唯一实例一个作用域ServiceCollection services  new ServiceCollection(); services.AddScopedILog, Log(); services.AddScopedISqlHelper, SqlServerHelper(); var provider  services.BuildServiceProvider(); var scope1  provider.CreateScope();//在一个作用域下创建第一个子作用域        var sqlHelper  scope1.ServiceProvider.GetServiceISqlHelper();新的作用域ServiceCollection services  new ServiceCollection(); services.AddScopedILog, Log(); services.AddScopedISqlHelper, SqlServerHelper(); var provider  services.BuildServiceProvider(); var scope1  provider.CreateScope(); //在一个作用域下创建第一个子作用域        var sqlHelper  scope1.ServiceProvider.GetServiceISqlHelper(); var scope2  provider.CreateScope(); //在一个作用域下创建第二个子作用域 sqlHelper  scope2.ServiceProvider.GetServiceISqlHelper();注意由于是控制台项目只能用子作用域来体现作用域的特点在web项目中一次请求就相当于一个作用域推荐阅读• 生成条形码二维码DataMatrix条码.EAN码.39码.交叉25码.UPC码.128码.93码.ISBN码.Codabar等• C#生成二维码的两种快捷方式• ShellProgressBar控制台中漂亮的显示进度条• C#10特性试用|全局和隐式usings资料参考• ServiceCollection 类 (Microsoft.Extensions.DependencyInjection) | Microsoft Learn[1]• ASP.NET Core 中的 ServiceProvider - hippieZhou - 博客园[2]欢迎关注我的公众号“Net分享”技术文章第一时间推送 , 分享一些你可能注意不到的细节。 引用链接[1] ServiceCollection 类 (Microsoft.Extensions.DependencyInjection) | Microsoft Learn: https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.extensions.dependencyinjection.servicecollection?viewdotnet-plat-ext-6.0[2]: https://blog.csdn.net/m1m2m3mmm/article/details/123231352
http://www.pierceye.com/news/627076/

相关文章:

  • 做网站数据库表各字段详情福建省港航建设发展有限公司网站
  • 潍坊 营销型网站建设游戏设计师网站有哪些
  • 用花生棒做网站快吗大型网站开发合同
  • 网站建设什么原因最主要wordpress mu安装
  • 龙岗网站设计公司价格wordpress商品属性选择
  • 企业网站如何优化足球比方类网站开发
  • 大型网站开发 优帮云公司制度建设的意义
  • 收录网站工具沈阳高端网站定制
  • 做网站哪家比较好网站网页翻页设计
  • 湖州建设网站制作手机网站登录模板
  • 重庆网站制作技术wordpress获取特定尺寸特征图像
  • 展示型网站建设标准网络组建视频
  • 怎么用wordpress建手机网站网络管理网站策划书
  • 网站空间位置河南郑州百姓网
  • 云服务器可以用来做网站么网站建设短期培训
  • 做网站的费属于什么费用昆山智能网站开发
  • 西安网站制作南昌公司企业微信app下载安装官方版
  • 网站建设情况总结个人静态网页学生作业
  • 手机网站一键分享到微信asp.net ftp发布网站
  • 重庆网站制作公司妇联加强网站平台建设
  • php mysql网站开发全程实例.pdf网站的视频怎么下载
  • 海南医院网站建设软件工程公司排名
  • 微信公众号怎么分享wordpress网站优化搜索
  • 永定门网站建设佛山网红打卡景点大全排名榜
  • 网站建设模板推广重庆网络问政平台华龙网
  • 今科云平台网站建设技术中国电力建设股份部官方网站
  • 门户网站的三大基本特征vs2017做的网站如何发布
  • 怎么样自己做网站接订单网站建设和的注意事项
  • 月付商城网站建站男装商城网站建设
  • 建网站的步骤及方法php做的网站怎么运行