如何有效推广完成微网站建设的电子商务平台?

摘要:电子商务类网站建设实训报告,微网站建设完不知道怎么推广咋办,做定制网站多少钱,小程序外包开发多少钱2,NET Core 依赖注入的基本用法 话接上篇,这一章介绍 .NET Core
电子商务类网站建设实训报告,微网站建设完不知道怎么推广咋办,做定制网站多少钱,小程序外包开发多少钱2#xff0c;NET Core 依赖注入的基本用法 话接上篇#xff0c;这一章介绍 .NET Core 框架自带的轻量级 Ioc 容器下服务使用的一些知识点#xff0c;大家可以先看看上一篇文章 [ASP.NET Core - 依赖注入(一)] 2.3 服务解析 通过 IServiceCollection 注册了服务之后#xf…2NET Core 依赖注入的基本用法 话接上篇这一章介绍 .NET Core 框架自带的轻量级 Ioc 容器下服务使用的一些知识点大家可以先看看上一篇文章 [ASP.NET Core - 依赖注入(一)] 2.3 服务解析 通过 IServiceCollection 注册了服务之后可以通过以下方式解析相应服务的实例 IServiceProvider IServiceProiver 实例由 IServiceCollection 通过 BuildServiceProvider() 方法创建在 ASP.NET Core 中主机启动的时候会创建一个全局的 IServiceProvider并且此实例也在容器当中。所有在容器注册过的服务都可以通过 IServiceProiver 进行解析当然该服务的依赖项必须也在容器中注册。ActivatorUtilities 用于手动创建未在DI容器中注册的服务实例 2.3.1 服务注入方式 当我们通过容器解析一个服务实例的时候容器根据当前服务的链式依赖关系图解析其依赖项根据依赖项的生命周期或创建、或从已有的实例获取然后注入到我们解析的服务当中。在一个服务中获取另一个服务实例的方式由以下几种 (1) 构造函数注入 构造函数注入是非常常见的服务注入方式也是微软最推荐的方式这种方式可以明确地声明当前类所依赖的东西一目了然。如同上面的示例代码中使用的就是构造函数注入方式。构造函数注入对于类的构造函数有以下要求 构造函数可以接收非依赖注入的参数但必须提供默认值 当服务通过 IServiceProvider 解析时要求构造函数必须是 public 当服务由 ActivatorUtilities 解析时构造函数注入要求只存在一个适用的构造函数。 支持构造函数重载但其参数可以全部通过依赖注入来实现的重载只能存在一个。 如果发现构造函数时存在歧义将引发异常例如以下情况 public class ExampleService {public ExampleService(){}public ExampleService(ILoggerExampleService logger){// omitted for brevity}public ExampleService(IOptionsExampleOptions options){// omitted for brevity} }(2) 属性注入 这里有一点需要说明.NET Core 内置的依赖注入框架并不支持属性注入如果需要使用属性注入需要结合第三方依赖注入框架进行使用如autofac。 顾名思义属性注入就是通过类中的属性注入需要的服务要求属性必须是 public 并且具备 get、set 访问器。如下 属性注入一般用于注入一些即使缺失了也不会导致当前类无法工作的依赖项如日志记录等。这种时候会为数据注入设置一个默认实现防止该属性为空导致当前类的功能受影响。 (3) 方法注入 通过 FromServicesAttribute 特性在控制器的方法参数中注入这种方式只能用于控制器。默认情况下控制器示例由容器来管理在入口文件调用 builder.Services.AddControllers(); 时注册到容器中。 [HttpGet(nameof(InjectTest3))] public Task InjectTest3([FromServices] IRabbit rabbit) {Console.WriteLine(rabbit is Rabbit);return Task.CompletedTask; }这种方式用于缩小依赖注入的粒度适用于注入的服务只在当前方法使用的时候是对构造函数注入的简化。 (4) 手动解析 在.NET框架中任何可以拿得到 IServiceProvider 实例的地方都可以通过 GetRequiredService() 或者 GetService() 解析我们需要的服务。直接使用 IServiceProvider 是服务定位器模式的一个示例。这通常被认为是反模式因为它隐藏了类的依赖关系。这种方式在某些情况下是有用的但是应该尽量避免。
阅读全文