.net core控制台程序中使用原生依赖注入

原文:.net core控制台程序中使用原生依赖注入

如果要在程序中使用DbContext,则需要先在Nuget中安装Microsoft.EntityFrameworkCore.SqlServer

using ConsoleApp1.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using System;
using ConsoleApp1.BusinessLogic;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Startup();
            Console.WriteLine("Hello World!");
        }

        private static void Startup()
        {
            var services = new ServiceCollection();
            var connectionString = "Data Source=localhost;Initial Catalog=TestDB;User ID=sa;Password=123;";
            services.AddDbContext<MyDbContext>(options => options.UseSqlServer(connectionString));

            services.AddScoped<IDatabaseBO, DatabaseBO>();
            var provider = services.BuildServiceProvider();
            using (var serviceScope = provider.CreateScope())
            {
                var serviceProvider = serviceScope.ServiceProvider;
                var databaseBO = serviceProvider.GetService<IDatabaseBO>();
                databaseBO.GenerateData();
            }
        }
    }
}

原文地址:https://www.cnblogs.com/lonelyxmas/p/12037944.html

时间: 2024-09-28 15:32:28

.net core控制台程序中使用原生依赖注入的相关文章

【ASP.NET Core分布式项目实战】(五)Docker制作dotnet core控制台程序镜像

Docker制作dotnet core控制台程序镜像 基于dotnet SDK 新建控制台程序 mkdir /home/console cd /home/console dotnet new console dotnet restore 创建 Dockerfile 文件,参考https://github.com/dotnet/dotnet-docker/blob/master/samples/aspnetapp/Dockerfile vim /home/console/Dockerfile #

在Win32控制台程序中使用CString

进入Project->Settings->General 下,在下拉框中选"Use MFC in a Static Library"(使用MFC做为静态链接库): 然后添加头文件#include <afxwin.h>,并且要放在其它头文件前. 否则,会有#error : WINDOWS.H already included. MFC apps must not #include <windows.h>的错误提示. 在Win32控制台程序中使用CStr

.Net Core 控制台程序错误:Can not find runtime target for framework &#39;.NETCoreApp,Version=v1.0&#39; compatible with one of the target runtimes: &#39;win10-x64, win81-x64, win8-x64, win7-x64&#39;.

.Net Core 控制台程序错误:Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'. 解决方法: 在项目文件project.json里添加: "runtimes": {    "win10-x64": {}

C#控制台程序中处理2个关闭事件的代码实例

应用场景 我们开发的控制台应用,在运行阶段很有可能被用户Ctrl+C终止或是被用户直接关闭.如果我们不希望用户通过Ctrl+C终止我们的程序,就需要对Ctrl+C或关闭事件作处理. 处理方法 在.net平台下Console类有个CancelKeyPress事件可以处理Ctrl+C,不过对于直接关闭控制台应用,这种处理就无能为力了. 不过Windows API中有个SetConsoleCtrlHandler函数可以处理这两种关闭事件. C#处理代码如下: 代码如下: static class Pr

VisualStudioCode创建的asp.net core控制台程序部署到linux

1.asp.net core控制台程序 static void Main(string[] args) { int times=10; while(times>=0) { Console.WriteLine("Hello World!"); times--; Thread.Sleep(1000); } } 2.发布 发布前,修改test2.csproj文件(项目名称为test2) <Project Sdk="Microsoft.NET.Sdk">

.net core学习笔记(三)-依赖注入

.net core 中使用了大量的依赖注入,对依赖注入一直是一知半解,总想不透,项目中用的是一个网上的开源框架,从底层到web层都是用的构造函数依赖注入. 然后了在继承ActionFilterAttribute的过滤器中,重写的OnActionExecuted需要用到依赖注入的服务,然后就想在子类中的构造函数中进行依赖注入,但是发现OnActionExecuted执行前根本不会进入到子类的构造函数中,查了下资料,发现时因为OnActionExecuted会在其父类的构造函数执行时触发,突然就懵了

避免在ASP.NET Core 3.0中为启动类注入服务

本篇是如何升级到ASP.NET Core 3.0系列文章的第二篇. Part 1 - 将.NET Standard 2.0类库转换为.NET Core 3.0类库 Part 2 - IHostingEnvironment VS IHostEnvironent - .NET Core 3.0中的废弃类型 Part 3 - 避免在ASP.NET Core 3.0中为启动类注入服务(本篇) Part 4 - 将终端中间件转换为ASP.NET Core 3.0中的端点路由 Part 5 - 将集成测试的

ASP.NET Core 2.2 基础知识(一) 依赖注入

原文:ASP.NET Core 2.2 基础知识(一) 依赖注入 依赖: 类A用到了类B,我们就说类A依赖类B.如果一个类没有任何地方使用到,那这个类基本上可以删掉了. public class Test { private MyDependency md = new MyDependency(); public void Print() { md.Print(); } } public class MyDependency { public void Print() { Console.Wri

ASP.NET Core中如影随形的&rdquo;依赖注入&rdquo;[下]: 历数依赖注入的N种玩法

在对ASP.NET Core管道中关于依赖注入的两个核心对象(ServiceCollection和ServiceProvider)有了足够的认识之后,我们将关注的目光转移到编程层面.在ASP.NET Core应用中基于依赖注入的编程主要涉及到两个方面,它们分别是将服务注册到ServiceCollection中,和采用注入的方式利用ServiceProvider提供我们所需的服务.我们先来讨论ASP.NET Core应用中如何进行服务注册.[本文已经同步到<ASP.NET Core框架揭秘>之中