public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//下面这行就是注入,是AppSetting这个类与appsetting.json这个文件建立关系
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));//这里是添加的,其余的都是新建项目带的
//AppSettings这个类是新增的,里面的字段,对应appsettings.json中的字段
//链接字符串的
var conn = Configuration.GetSection("ConnectionStrings");
          string efconn = conn["acc_miniehub"];
//映射的实体类的ConnectionString 属性
 OMSECData.Acc_OmsContext.ConnectionString = efconn;
            services.AddDbContext<OMSECData.Acc_OmsContext>
            (
                options => options.UseSqlServer(efconn)
            );
} public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
} app.UseMvc();
}
}

应用:这样就ok了。appsetting.json就是配置文件,把什么链接字符串了什么都是放在这里的。

链接数据库:

用法和前面的一样,先声明再注入

IConfiguration 是用来加载配置值的,可以加载内存键值对、JSON或XML配置文件,我们通常用来加载缺省的appsettings.json

1. 注入IConfiguration

执行到Startup的时候,IConfiguration已经被注入到services了,不需要我们额外添加注入的代码,缺省就是读取appsettings.json文件,你可以理解在Startup.cs里有隐藏的注入代码类似如下:

var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
services.AddSingleton<IConfiguration>(Configuration);

SP.NET Core 包含了一个默认支持构造函数注入的简单内置容器(由 IServiceProvider 接口表示),并且 ASP.NET 使某些服务可以通过 DI 获取。

ASP.NET 的容器指的是它管理的类型为 services。在这篇文章的其余部分, services 是指由 ASP.NET Core 的 IoC 容器管理的类型。

你在应用程序 Startup 类的 ConfigureServices 方法中配置内置容器的服务

注册你自己的服务

你可以按照如下方式注册你自己的应用程序服务。第一个泛型类型表示将要从容器中请求的类型(通常是一个接口)。第二个泛型类型表示将由容器实例化并且用于完成这些请求的具体类型。

services.AddTransient<IEmailSender, AuthMessageSender>();
services.AddTransient<ISmsSender, AuthMessageSender>();

注解
每个 services.Add<service> 调用添加(和可能配置)服务。 例如: services.AddMvc() 添加 MVC 需要的服务。

例如:

 services.AddTransient<MQ.ISOService, MQ.SOService>();//这个<>其实就是,当代码读取到MQ.ISOService的接口的时候,会返回MQ.SOService这个对象。
namespace ECBackend.MQ
{
interface ISOService
{
Task<int> PostOrderToWMS(string data);
Task<int> SOConfirm(string data);
}
public class SOService : ISOService, ICapSubscribe
{
/下面的都是遵循:先声明再注入的原则
private readonly IOptions<AppSettings> _Setting;
private readonly IHttpClientFactory _httpClientFactory;
private readonly ICapPublisher _publisher;
private readonly Acc_OmsContext _db; public SOService(IOptions<AppSettings> Setting,IHttpClientFactory httpClientFactory,ICapPublisher p,Acc_OmsContext db)
{
_Setting = Setting;
_httpClientFactory = httpClientFactory;
_db = db;
_publisher = p;
}
[CapSubscribe("abc")]
public async Task<string> GeneratePaperInvoice(string data)
{
string s = "";
try
{
var ary = data.Split(',');
Guid Pk_guid = new Guid(ary[]);
string whse = ary[];
string fplxdm = ary[];
var obj = new SO(Pk_guid, whse, _Setting, _httpClientFactory.CreateClient(), _publisher);
s = await obj.SSTInvoice(fplxdm);
}
catch (Exception ex)
{
s = ex.Message;
}
return s;
}
}

最新文章

  1. &quot;Becoming Functional&quot; 阅读笔记+思维导图
  2. Java aes加密C#解密的取巧方法
  3. .NET设计模式(1):1.1 单例模式(Singleton Pattern)
  4. 【Spring】对象后期处理,BeanPostProcessor
  5. Unity中有两种Animation Clip
  6. Winform 中的KeyDown
  7. oracle 日期获取
  8. 浅谈datagrid详细操作单元格样式
  9. ASP.NET读取EXCEL文件的三种经典方法(转)
  10. 【Android Studio使用教程5】使用SDK Manager时, SDK下载更新不了的解决方案(eclipse 也适用)
  11. js高级技巧笔记(一)
  12. mybatis11 sqlMapConfig.xml文件说明
  13. iOS技术
  14. QT4和QT3的区别
  15. PHP学习笔记之数组篇
  16. php7安装php-redis扩展
  17. pycharm 配置svn
  18. C#通讯录——Windows Form Contact List
  19. 转载:Unity3D游戏对象消失enabled、Destroy与active的区别
  20. [PHP] 07 - Json, XML and MySQL

热门文章

  1. @ENABLEWEBSECURITY和@ENABLEWEBMVCSECURITY有什么区别?
  2. linux strace 命令
  3. Vue基础练习之Todo List
  4. linux一个例子驱动
  5. JS(JavaScript)的进一步了解8(更新中&#183;&#183;&#183;)
  6. HDU6383p1m2(二分)
  7. VRChat模型制作及上传总篇(201912)
  8. com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1680 &gt; 1024). You can change this value on the server by setting the max_allowed_packet&#39; variable.
  9. Kafka学习笔记4--Kafka消费者的客户端(PHP)开发
  10. Gif动图压缩java版