图片 1

MVC
Core的改变感觉非常深之,需要之作用大多从Nuget安装,还放置了IOC,支持SelfHost方式运行等等。

如出一辙、项目布局的更动
始建的新MVC项目之结构发生了转变,比如:静态文件要统一放置到wwwroot文件夹,配置文件化了appsettings.json,用startup.cs文件替代了global文件;原先对view命名空间的援配置当view下的web.config,现在虽然改变成为了应用_ViewImport.cshtml文件,并且用razor语法来配置。

二、内置IOC
a)Autofac是格外好的IOC容器,.Net
Core下也还是好就此之,同时Core也放了IOC,typescript也打带IOC,也许注入的计会作言语本身的相同种植力量吧。
嵌入IOC也支撑选择多目标生命周期,比如Transient(内次请求都见面实例化)、Scoped(每次Web请求)、Singleton(整个应用之生命周期)。
b)单个对象的流只需要于Startup.ConfigureServices中安:services.AddSingleton(typeof(Person));
从此以后于于是到Person的地方通过构造函数注入。
c)实际利用了非可能用单科对象的流入的方法,根据程序集来配置活动注入的办法吧:
var serviceAsm = Assembly.Load(new AssemblyName(“2_1 MVC Core Lib”));
var serviceTypes = serviceAsm.GetTypes().Where(t =>
typeof(IServiceTag)
 .IsAssignableFrom(t) && !t.GetTypeInfo().IsAbstract);
foreach (var serviceType in serviceTypes) {
  var interfaceTypes = serviceType.GetInterfaces().Where(t => t.Name
!= “IServiceTag”);
  foreach (var interfaceType in interfaceTypes) {
    services.AddSingleton(interfaceType, serviceType);
  }
}
增加t.Name !=
“IServiceTag”的限定是发出必不可少的,IServiceTag是Service接口的符,如果非增是判断,会拿IServiceTag也流。

d)IOC可以“递归”注入,但若包干净对象呢是为IOC创建的,而非是显式new出来的。比如使就此IOC创建ExceptionFilter,那么它自己引用的任何类为足以自行注入了。手动用IOC创建nFilter并添加到MVC中的方吧:
services.AddMvc(options => {
  var serviceProvider = services.BuildServiceProvider();
  var filter = serviceProvider.GetService<ExceptionFilter>();
  options.Filters.Add(filter);
});

以前端代码中还可以就此HttpContext.RequestServices.GetService来深受IOC创建对象。

攻材料:如鹏网.net提高班http://www.rupeng.com/News/10/4603.shtml

相关文章

网站地图xml地图