zoukankan      html  css  js  c++  java
  • .Net Core Linux centos7行—IOC模块

    .net core中可以说是用了全新的IOC模板,定义在Microsoft.Extensions.DependencyInjection下。提供了一套标准的接口。并提供了默认实现。并且大范围使用着,处处都体现着IOC的设计思想。

    StartupConfigureServices方法中,集中对服务进行配置。可以看到默认的.net core mvc默认项目已经为我们注入了不少服务。看注释也就懂了,也没什么特别好解释的(^_^)。

    最后2行代码是自定义配置的注入。需要Microsoft.Extensions.Options.ConfigurationExtensions package的支持

    AddOptions 针对Ioptions<POCOModel>提供管理,缓存,配置变动自动支持服务,即配置文件有改动会自动反应在应用程序中,且应用程序不需要自动重启。不像以前的web.config.有任何改动都会自动重启。

    Configure<T>(IConfiguration).表示配置的内容来自配置文件。

    IndexSetting是新建的一个model,即配置项。

    配置文件中的IndexSetting

       

       

    目前.net core ioc有3种获取service方式。

    1.ctor注入。

    2.action 参数注入

    3.容器获取方式

       

       

    当然,应对一般情况,这种方式也许够用了。but,现实显然不是这样的。通常我们需要更强大的ioc lib。目前官方推荐的更强大的ioc lib。也是业界大名鼎鼎的autofac。autofac的介绍园子里面一大把,并且写的很详细,很好。就不多介绍了。

    官方文档:http://docs.autofac.org/en/latest/integration/aspnetcore.html

    asp.netasp.net core时代的区别主要有几点。

    1.Use InstancePerLifetimeScope instead of InstancePerRequest.

    简单来说就是生命周期的统一。

    2.No more DependencyResolver.

    没有以前的DependencyResolver入口了

    3.No manual controller registration.

    不再需要注册自己的controllerfactory了,也包括owin中的middleware。

       

    需要使用它,当然需要添加它

    针对StartupConfigureServices方法做一些改造

    使用任何第三方ioc,都需要返回IServiceProvider。替换系统的默认IServiceProvider。否则不能生效。

    然后创建autofac的build,一切照旧,我们就可以愉快的使用autofac啦。

  • 相关阅读:
    虚基类练习 动物1
    UVa 10820
    hdu1027 Ignatius and the Princess II (全排列 &amp; STL中的神器)
    在windows下安装redmine及相关问题
    批量导出表数据到CSV文件
    轻松学习Ionic (二) 为Android项目集成Crosswalk(更新官方命令行工具)
    swift第一章
    socket编程演示样例(多线程)
    谋哥:玩App怎么赚钱(三)
    Oracle database wrc运行报错ORA-15557
  • 原文地址:https://www.cnblogs.com/calvinK/p/5621262.html
Copyright © 2011-2022 走看看