.net core 6 console app use autofac

Program.cs

// See https://aka.ms/new-console-template for more information
using Autofac;
using Autofac.Extensions.DependencyInjection;
using ConsoleApp;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;

var services = new ServiceCollection();
services.AddLogging(builder =>
{
    builder.AddConsole();
});
var builder = new ContainerBuilder();
builder.Populate(services);
builder.RegisterType<App>().PropertiesAutowired();
var container = builder.Build();
await container.Resolve<App>().Run(args);

App.cs

using Microsoft.Extensions.Logging;

namespace ConsoleApp
{
    internal class App
    {
        public ILogger<App> Logger { get; set; }
        public async Task Run(string[] args)
        {
            Logger.LogInformation("Starting...");
            await Task.CompletedTask;
        }
    }
}

ConsoleApp.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Autofac" Version="6.5.0" />
    <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="7.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />
  </ItemGroup>

</Project>
posted @ 2022-12-21 15:32  haue  阅读(93)  评论(0编辑  收藏  举报