refactor: Move some of the dependency injection code to the Common Library.

This commit is contained in:
real-zony 2022-10-06 12:45:01 +08:00
parent aa90e232f7
commit ecab0e0f5c
34 changed files with 60 additions and 73 deletions

View File

@ -10,13 +10,13 @@ using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using ZonyLrcTools.Cli.Infrastructure; using ZonyLrcTools.Cli.Infrastructure;
using ZonyLrcTools.Cli.Infrastructure.Album; using ZonyLrcTools.Cli.Infrastructure.Album;
using ZonyLrcTools.Cli.Infrastructure.Exceptions;
using ZonyLrcTools.Cli.Infrastructure.Extensions; using ZonyLrcTools.Cli.Infrastructure.Extensions;
using ZonyLrcTools.Cli.Infrastructure.IO; using ZonyLrcTools.Cli.Infrastructure.IO;
using ZonyLrcTools.Cli.Infrastructure.Lyric; using ZonyLrcTools.Cli.Infrastructure.Lyric;
using ZonyLrcTools.Cli.Infrastructure.Tag; using ZonyLrcTools.Cli.Infrastructure.Tag;
using ZonyLrcTools.Cli.Infrastructure.Threading; using ZonyLrcTools.Cli.Infrastructure.Threading;
using ZonyLrcTools.Common.Configuration; using ZonyLrcTools.Common.Configuration;
using ZonyLrcTools.Common.Infrastructure.Exceptions;
using File = System.IO.File; using File = System.IO.File;
namespace ZonyLrcTools.Cli.Commands.SubCommand namespace ZonyLrcTools.Cli.Commands.SubCommand

View File

@ -6,10 +6,10 @@ using System.Threading.Tasks;
using McMaster.Extensions.CommandLineUtils; using McMaster.Extensions.CommandLineUtils;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using ZonyLrcTools.Cli.Infrastructure.Exceptions;
using ZonyLrcTools.Cli.Infrastructure.IO; using ZonyLrcTools.Cli.Infrastructure.IO;
using ZonyLrcTools.Cli.Infrastructure.MusicDecryption; using ZonyLrcTools.Cli.Infrastructure.MusicDecryption;
using ZonyLrcTools.Cli.Infrastructure.Threading; using ZonyLrcTools.Cli.Infrastructure.Threading;
using ZonyLrcTools.Common.Infrastructure.Exceptions;
namespace ZonyLrcTools.Cli.Commands.SubCommand namespace ZonyLrcTools.Cli.Commands.SubCommand
{ {

View File

@ -3,10 +3,10 @@ using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Threading.Tasks; using System.Threading.Tasks;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
using ZonyLrcTools.Cli.Infrastructure.Exceptions;
using ZonyLrcTools.Cli.Infrastructure.Lyric.NetEase.JsonModel; using ZonyLrcTools.Cli.Infrastructure.Lyric.NetEase.JsonModel;
using ZonyLrcTools.Cli.Infrastructure.Network; using ZonyLrcTools.Common.Infrastructure.DependencyInject;
using ZonyLrcTools.Common.Infrastructure.Exceptions;
using ZonyLrcTools.Common.Infrastructure.Network;
namespace ZonyLrcTools.Cli.Infrastructure.Album.NetEase namespace ZonyLrcTools.Cli.Infrastructure.Album.NetEase
{ {

View File

@ -2,9 +2,9 @@ using System;
using System.Net.Http; using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Threading.Tasks; using System.Threading.Tasks;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
using ZonyLrcTools.Cli.Infrastructure.Lyric.QQMusic.JsonModel; using ZonyLrcTools.Cli.Infrastructure.Lyric.QQMusic.JsonModel;
using ZonyLrcTools.Cli.Infrastructure.Network; using ZonyLrcTools.Common.Infrastructure.DependencyInject;
using ZonyLrcTools.Common.Infrastructure.Network;
namespace ZonyLrcTools.Cli.Infrastructure.Album.QQMusic namespace ZonyLrcTools.Cli.Infrastructure.Album.QQMusic
{ {

View File

@ -2,7 +2,7 @@ using System;
using System.Text; using System.Text;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Newtonsoft.Json; using Newtonsoft.Json;
using ZonyLrcTools.Cli.Infrastructure.Exceptions; using ZonyLrcTools.Common.Infrastructure.Exceptions;
namespace ZonyLrcTools.Cli.Infrastructure.Extensions namespace ZonyLrcTools.Cli.Infrastructure.Extensions
{ {

View File

@ -6,9 +6,9 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Logging.Abstractions;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
using ZonyLrcTools.Cli.Infrastructure.Exceptions;
using ZonyLrcTools.Cli.Infrastructure.Extensions; using ZonyLrcTools.Cli.Infrastructure.Extensions;
using ZonyLrcTools.Common.Infrastructure.DependencyInject;
using ZonyLrcTools.Common.Infrastructure.Exceptions;
namespace ZonyLrcTools.Cli.Infrastructure.IO namespace ZonyLrcTools.Cli.Infrastructure.IO
{ {

View File

@ -3,10 +3,10 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using ZonyLrcTools.Cli.Infrastructure.Exceptions;
using ZonyLrcTools.Cli.Infrastructure.Lyric.KuGou.JsonModel; using ZonyLrcTools.Cli.Infrastructure.Lyric.KuGou.JsonModel;
using ZonyLrcTools.Cli.Infrastructure.Network;
using ZonyLrcTools.Common.Configuration; using ZonyLrcTools.Common.Configuration;
using ZonyLrcTools.Common.Infrastructure.Exceptions;
using ZonyLrcTools.Common.Infrastructure.Network;
namespace ZonyLrcTools.Cli.Infrastructure.Lyric.KuGou namespace ZonyLrcTools.Cli.Infrastructure.Lyric.KuGou
{ {

View File

@ -1,6 +1,6 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject; using ZonyLrcTools.Common.Infrastructure.DependencyInject;
using ZonyLrcTools.Cli.Infrastructure.Exceptions; using ZonyLrcTools.Common.Infrastructure.Exceptions;
namespace ZonyLrcTools.Cli.Infrastructure.Lyric namespace ZonyLrcTools.Cli.Infrastructure.Lyric
{ {

View File

@ -4,6 +4,7 @@ using System.Linq;
using System.Text; using System.Text;
using ZonyLrcTools.Cli.Infrastructure.Extensions; using ZonyLrcTools.Cli.Infrastructure.Extensions;
using ZonyLrcTools.Common.Configuration; using ZonyLrcTools.Common.Configuration;
using ZonyLrcTools.Common.Infrastructure.Extensions;
namespace ZonyLrcTools.Cli.Infrastructure.Lyric namespace ZonyLrcTools.Cli.Infrastructure.Lyric
{ {

View File

@ -1,7 +1,7 @@
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
using ZonyLrcTools.Common.Configuration; using ZonyLrcTools.Common.Configuration;
using ZonyLrcTools.Common.Infrastructure.DependencyInject;
namespace ZonyLrcTools.Cli.Infrastructure.Lyric namespace ZonyLrcTools.Cli.Infrastructure.Lyric
{ {

View File

@ -4,10 +4,10 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Newtonsoft.Json; using Newtonsoft.Json;
using ZonyLrcTools.Cli.Infrastructure.Exceptions;
using ZonyLrcTools.Cli.Infrastructure.Lyric.NetEase.JsonModel; using ZonyLrcTools.Cli.Infrastructure.Lyric.NetEase.JsonModel;
using ZonyLrcTools.Cli.Infrastructure.Network;
using ZonyLrcTools.Common.Configuration; using ZonyLrcTools.Common.Configuration;
using ZonyLrcTools.Common.Infrastructure.Exceptions;
using ZonyLrcTools.Common.Infrastructure.Network;
namespace ZonyLrcTools.Cli.Infrastructure.Lyric.NetEase namespace ZonyLrcTools.Cli.Infrastructure.Lyric.NetEase
{ {

View File

@ -4,9 +4,9 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Web; using System.Web;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using ZonyLrcTools.Cli.Infrastructure.Exceptions;
using ZonyLrcTools.Cli.Infrastructure.Lyric.QQMusic.JsonModel; using ZonyLrcTools.Cli.Infrastructure.Lyric.QQMusic.JsonModel;
using ZonyLrcTools.Cli.Infrastructure.Network; using ZonyLrcTools.Common.Infrastructure.Exceptions;
using ZonyLrcTools.Common.Infrastructure.Network;
namespace ZonyLrcTools.Cli.Infrastructure.Lyric.QQMusic namespace ZonyLrcTools.Cli.Infrastructure.Lyric.QQMusic
{ {

View File

@ -5,7 +5,7 @@ using System.Security.Cryptography;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject; using ZonyLrcTools.Common.Infrastructure.DependencyInject;
namespace ZonyLrcTools.Cli.Infrastructure.MusicDecryption namespace ZonyLrcTools.Cli.Infrastructure.MusicDecryption
{ {

View File

@ -3,8 +3,8 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Newtonsoft.Json; using Newtonsoft.Json;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
using ZonyLrcTools.Common.Configuration; using ZonyLrcTools.Common.Configuration;
using ZonyLrcTools.Common.Infrastructure.DependencyInject;
namespace ZonyLrcTools.Cli.Infrastructure.Tag namespace ZonyLrcTools.Cli.Infrastructure.Tag
{ {

View File

@ -4,9 +4,9 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
using ZonyLrcTools.Cli.Infrastructure.Exceptions;
using ZonyLrcTools.Common.Configuration; using ZonyLrcTools.Common.Configuration;
using ZonyLrcTools.Common.Infrastructure.DependencyInject;
using ZonyLrcTools.Common.Infrastructure.Exceptions;
namespace ZonyLrcTools.Cli.Infrastructure.Tag namespace ZonyLrcTools.Cli.Infrastructure.Tag
{ {

View File

@ -3,8 +3,8 @@ using System.Linq;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
using ZonyLrcTools.Common.Configuration; using ZonyLrcTools.Common.Configuration;
using ZonyLrcTools.Common.Infrastructure.DependencyInject;
namespace ZonyLrcTools.Cli.Infrastructure.Tag namespace ZonyLrcTools.Cli.Infrastructure.Tag
{ {

View File

@ -1,7 +1,7 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject; using ZonyLrcTools.Common.Infrastructure.DependencyInject;
using ZonyLrcTools.Cli.Infrastructure.Exceptions; using ZonyLrcTools.Common.Infrastructure.Exceptions;
namespace ZonyLrcTools.Cli.Infrastructure.Tag namespace ZonyLrcTools.Cli.Infrastructure.Tag
{ {

View File

@ -4,9 +4,9 @@ using System.Linq;
using System.Reflection; using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
using ZonyLrcTools.Cli.Infrastructure.Network;
using ZonyLrcTools.Cli.Infrastructure.Updater.JsonModel; using ZonyLrcTools.Cli.Infrastructure.Updater.JsonModel;
using ZonyLrcTools.Common.Infrastructure.DependencyInject;
using ZonyLrcTools.Common.Infrastructure.Network;
namespace ZonyLrcTools.Cli.Infrastructure.Updater; namespace ZonyLrcTools.Cli.Infrastructure.Updater;

View File

@ -11,9 +11,10 @@ using Serilog.Events;
using Serilog.Sinks.SystemConsole.Themes; using Serilog.Sinks.SystemConsole.Themes;
using ZonyLrcTools.Cli.Commands; using ZonyLrcTools.Cli.Commands;
using ZonyLrcTools.Cli.Commands.SubCommand; using ZonyLrcTools.Cli.Commands.SubCommand;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
using ZonyLrcTools.Cli.Infrastructure.Exceptions;
using ZonyLrcTools.Cli.Infrastructure.Logging; using ZonyLrcTools.Cli.Infrastructure.Logging;
using ZonyLrcTools.Common.Infrastructure.DependencyInject;
using ZonyLrcTools.Common.Infrastructure.Exceptions;
using ZonyLrcTools.Common.Infrastructure.Network;
namespace ZonyLrcTools.Cli namespace ZonyLrcTools.Cli
{ {
@ -86,6 +87,7 @@ namespace ZonyLrcTools.Cli
{ {
services.AddSingleton(PhysicalConsole.Singleton); services.AddSingleton(PhysicalConsole.Singleton);
services.BeginAutoDependencyInject<Program>(); services.BeginAutoDependencyInject<Program>();
services.BeginAutoDependencyInject<IWarpHttpClient>();
services.ConfigureConfiguration(); services.ConfigureConfiguration();
services.ConfigureToolService(); services.ConfigureToolService();
}) })

View File

@ -47,8 +47,4 @@
<ProjectReference Include="..\ZonyLrcTools.Common\ZonyLrcTools.Common.csproj" /> <ProjectReference Include="..\ZonyLrcTools.Common\ZonyLrcTools.Common.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="Config" />
</ItemGroup>
</Project> </Project>

View File

@ -1,11 +1,8 @@
using System; using System.Reflection;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using ZonyLrcTools.Cli.Infrastructure.Extensions; using ZonyLrcTools.Common.Infrastructure.Extensions;
namespace ZonyLrcTools.Cli.Infrastructure.DependencyInject namespace ZonyLrcTools.Common.Infrastructure.DependencyInject
{ {
public static class AutoDependencyInjectExtensions public static class AutoDependencyInjectExtensions
{ {

View File

@ -1,4 +1,4 @@
namespace ZonyLrcTools.Cli.Infrastructure.DependencyInject namespace ZonyLrcTools.Common.Infrastructure.DependencyInject
{ {
/// <summary> /// <summary>
/// 继承了本接口的类都会以单例的形式注入到 IoC 容器当中。 /// 继承了本接口的类都会以单例的形式注入到 IoC 容器当中。

View File

@ -1,4 +1,4 @@
namespace ZonyLrcTools.Cli.Infrastructure.DependencyInject namespace ZonyLrcTools.Common.Infrastructure.DependencyInject
{ {
/// <summary> /// <summary>
/// 继承了本接口的类都会以瞬时的形式注入到 IoC 容器当中。 /// 继承了本接口的类都会以瞬时的形式注入到 IoC 容器当中。

View File

@ -1,13 +1,11 @@
using System.IO;
using System.Net; using System.Net;
using System.Net.Http;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using ZonyLrcTools.Cli.Infrastructure.Network;
using ZonyLrcTools.Common.Configuration; using ZonyLrcTools.Common.Configuration;
using ZonyLrcTools.Common.Infrastructure.Network;
namespace ZonyLrcTools.Cli.Infrastructure.DependencyInject namespace ZonyLrcTools.Common.Infrastructure.DependencyInject
{ {
/// <summary> /// <summary>
/// Service 注入的扩展方法。 /// Service 注入的扩展方法。

View File

@ -1,6 +1,4 @@
using System; namespace ZonyLrcTools.Common.Infrastructure.Exceptions
namespace ZonyLrcTools.Cli.Infrastructure.Exceptions
{ {
/// <summary> /// <summary>
/// 带错误码的异常实现。 /// 带错误码的异常实现。

View File

@ -1,10 +1,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace ZonyLrcTools.Cli.Infrastructure.Exceptions namespace ZonyLrcTools.Common.Infrastructure.Exceptions
{ {
/// <summary> /// <summary>
/// 错误码相关的帮助类。 /// 错误码相关的帮助类。

View File

@ -1,4 +1,4 @@
namespace ZonyLrcTools.Cli.Infrastructure.Exceptions namespace ZonyLrcTools.Common.Infrastructure.Exceptions
{ {
/// <summary> /// <summary>
/// 错误码。 /// 错误码。

View File

@ -1,7 +1,4 @@
using System; namespace ZonyLrcTools.Common.Infrastructure.Extensions
using System.Collections.Generic;
namespace ZonyLrcTools.Cli.Infrastructure.Extensions
{ {
/// <summary> /// <summary>
/// Linq 相关的扩展方法。 /// Linq 相关的扩展方法。

View File

@ -1,14 +1,11 @@
using System; using System.Net;
using System.Net;
using System.Net.Http;
using System.Reflection; using System.Reflection;
using System.Text; using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; using Newtonsoft.Json;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject; using ZonyLrcTools.Common.Infrastructure.DependencyInject;
using ZonyLrcTools.Cli.Infrastructure.Exceptions; using ZonyLrcTools.Common.Infrastructure.Exceptions;
namespace ZonyLrcTools.Cli.Infrastructure.Network namespace ZonyLrcTools.Common.Infrastructure.Network
{ {
public class DefaultWarpHttpClient : IWarpHttpClient, ITransientDependency public class DefaultWarpHttpClient : IWarpHttpClient, ITransientDependency
{ {

View File

@ -1,8 +1,4 @@
using System; namespace ZonyLrcTools.Common.Infrastructure.Network
using System.Net.Http;
using System.Threading.Tasks;
namespace ZonyLrcTools.Cli.Infrastructure.Network
{ {
/// <summary> /// <summary>
/// 基于 <see cref="IHttpClientFactory"/> 封装的 HTTP 请求客户端。 /// 基于 <see cref="IHttpClientFactory"/> 封装的 HTTP 请求客户端。

View File

@ -6,4 +6,12 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="6.0.0" />
<PackageReference Include="NetEscapades.Configuration.Yaml" Version="2.2.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
</Project> </Project>

View File

@ -1,6 +1,6 @@
using Shouldly; using Shouldly;
using Xunit; using Xunit;
using ZonyLrcTools.Cli.Infrastructure.Exceptions; using ZonyLrcTools.Common.Infrastructure.Exceptions;
namespace ZonyLrcTools.Tests.Infrastructure.Exceptions namespace ZonyLrcTools.Tests.Infrastructure.Exceptions
{ {

View File

@ -3,8 +3,8 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Shouldly; using Shouldly;
using Xunit; using Xunit;
using ZonyLrcTools.Cli.Infrastructure.Network;
using ZonyLrcTools.Common.Configuration; using ZonyLrcTools.Common.Configuration;
using ZonyLrcTools.Common.Infrastructure.Network;
namespace ZonyLrcTools.Tests.Infrastructure.Network namespace ZonyLrcTools.Tests.Infrastructure.Network
{ {

View File

@ -2,7 +2,7 @@ using System;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using ZonyLrcTools.Cli; using ZonyLrcTools.Cli;
using ZonyLrcTools.Cli.Commands; using ZonyLrcTools.Cli.Commands;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject; using ZonyLrcTools.Common.Infrastructure.DependencyInject;
namespace ZonyLrcTools.Tests namespace ZonyLrcTools.Tests
{ {