Skip to content

Commit 570cfc9

Browse files
authored
Refactore DependencyInjection (#768)
Refactore DependencyInjection
1 parent b044d1d commit 570cfc9

File tree

8 files changed

+27
-54
lines changed

8 files changed

+27
-54
lines changed

src/coverlet.collector/DataCollection/CoverageWrapper.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
using Coverlet.Collector.Utilities.Interfaces;
22
using Coverlet.Core;
33
using Coverlet.Core.Abstractions;
4-
using Coverlet.Core.Extensions;
54

65
namespace Coverlet.Collector.DataCollection
76
{

src/coverlet.collector/DataCollection/CoverletCoverageCollector.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using System.Xml;
66
using Coverlet.Collector.Utilities;
77
using Coverlet.Collector.Utilities.Interfaces;
8-
using Coverlet.Core;
98
using Coverlet.Core.Abstractions;
109
using Coverlet.Core.Helpers;
1110
using Microsoft.Extensions.DependencyInjection;

src/coverlet.console/Program.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ static int Main(string[] args)
2828
serviceCollection.AddTransient<ILogger, ConsoleLogger>();
2929
// We need to keep singleton/static semantics
3030
serviceCollection.AddSingleton<IInstrumentationHelper, InstrumentationHelper>();
31-
serviceCollection.AddSingleton<ISourceRootTranslator, SourceRootTranslator>(serviceProvider => new SourceRootTranslator(serviceProvider.GetRequiredService<ILogger>(), serviceProvider.GetRequiredService<IFileSystem>()));
31+
serviceCollection.AddSingleton<ISourceRootTranslator, SourceRootTranslator>(provider => new SourceRootTranslator(provider.GetRequiredService<ILogger>(), provider.GetRequiredService<IFileSystem>()));
3232

33-
DependencyInjection.Set(serviceCollection.BuildServiceProvider());
33+
ServiceProvider serviceProvider = serviceCollection.BuildServiceProvider();
3434

35-
var logger = (ConsoleLogger)DependencyInjection.Current.GetService<ILogger>();
36-
var fileSystem = DependencyInjection.Current.GetService<IFileSystem>();
37-
var sourceTranslator = DependencyInjection.Current.GetService<ISourceRootTranslator>();
35+
var logger = (ConsoleLogger) serviceProvider.GetService<ILogger>();
36+
var fileSystem = serviceProvider.GetService<IFileSystem>();
37+
var sourceTranslator = serviceProvider.GetService<ISourceRootTranslator>();
3838

3939
var app = new CommandLineApplication();
4040
app.Name = "coverlet";
@@ -86,7 +86,7 @@ static int Main(string[] args)
8686
mergeWith.Value(),
8787
useSourceLink.HasValue(),
8888
logger,
89-
DependencyInjection.Current.GetService<IInstrumentationHelper>(),
89+
serviceProvider.GetService<IInstrumentationHelper>(),
9090
fileSystem,
9191
sourceTranslator);
9292
coverage.PrepareModules();

src/coverlet.core/DependencyInjection.cs

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/coverlet.core/Extensions/DependencyInjectionExtensions.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using System;
2+
using Microsoft.Build.Utilities;
3+
4+
namespace Coverlet.MSbuild.Tasks
5+
{
6+
public abstract class BaseTask : Task
7+
{
8+
protected static IServiceProvider ServiceProvider { get; set; }
9+
}
10+
}

src/coverlet.msbuild.tasks/CoverageResultTask.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@
66
using Coverlet.Core;
77
using Coverlet.Core.Abstractions;
88
using Coverlet.Core.Enums;
9-
using Coverlet.Core.Extensions;
109
using Coverlet.Core.Reporters;
1110
using Microsoft.Build.Framework;
12-
using Microsoft.Build.Utilities;
11+
using Microsoft.Extensions.DependencyInjection;
1312

1413
namespace Coverlet.MSbuild.Tasks
1514
{
16-
public class CoverageResultTask : Task
15+
public class CoverageResultTask : BaseTask
1716
{
1817
private string _output;
1918
private string _format;
@@ -83,7 +82,7 @@ public override bool Execute()
8382
{
8483
Console.WriteLine("\nCalculating coverage result...");
8584

86-
IFileSystem fileSystem = DependencyInjection.Current.GetService<IFileSystem>();
85+
IFileSystem fileSystem = ServiceProvider.GetService<IFileSystem>();
8786
if (InstrumenterState is null || !fileSystem.Exists(InstrumenterState.ItemSpec))
8887
{
8988
_logger.LogError("Result of instrumentation task not found");
@@ -93,11 +92,11 @@ public override bool Execute()
9392
Coverage coverage = null;
9493
using (Stream instrumenterStateStream = fileSystem.NewFileStream(InstrumenterState.ItemSpec, FileMode.Open))
9594
{
96-
var instrumentationHelper = DependencyInjection.Current.GetService<IInstrumentationHelper>();
95+
var instrumentationHelper = ServiceProvider.GetService<IInstrumentationHelper>();
9796
// Task.Log is teared down after a task and thus the new MSBuildLogger must be passed to the InstrumentationHelper
9897
// https://github.com/microsoft/msbuild/issues/5153
9998
instrumentationHelper.SetLogger(_logger);
100-
coverage = new Coverage(CoveragePrepareResult.Deserialize(instrumenterStateStream), this._logger, DependencyInjection.Current.GetService<IInstrumentationHelper>(), fileSystem);
99+
coverage = new Coverage(CoveragePrepareResult.Deserialize(instrumenterStateStream), this._logger, ServiceProvider.GetService<IInstrumentationHelper>(), fileSystem);
101100
}
102101

103102
try
@@ -144,7 +143,7 @@ public override bool Execute()
144143
_output,
145144
reporter,
146145
fileSystem,
147-
DependencyInjection.Current.GetService<IConsole>(),
146+
ServiceProvider.GetService<IConsole>(),
148147
result);
149148
writer.WriteReport();
150149
}

src/coverlet.msbuild.tasks/InstrumentationTask.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
namespace Coverlet.MSbuild.Tasks
1414
{
15-
public class InstrumentationTask : Task
15+
public class InstrumentationTask : BaseTask
1616
{
1717
private string _path;
1818
private string _include;
@@ -132,7 +132,7 @@ public override bool Execute()
132132
// We need to keep singleton/static semantics
133133
serviceCollection.AddSingleton<IInstrumentationHelper, InstrumentationHelper>();
134134

135-
DependencyInjection.Set(serviceCollection.BuildServiceProvider());
135+
ServiceProvider = serviceCollection.BuildServiceProvider();
136136

137137
try
138138
{
@@ -141,7 +141,7 @@ public override bool Execute()
141141
var excludeFilters = _exclude?.Split(',');
142142
var excludedSourceFiles = _excludeByFile?.Split(',');
143143
var excludeAttributes = _excludeByAttribute?.Split(',');
144-
var fileSystem = DependencyInjection.Current.GetService<IFileSystem>();
144+
var fileSystem = ServiceProvider.GetService<IFileSystem>();
145145

146146
Coverage coverage = new Coverage(_path,
147147
includeFilters,
@@ -154,9 +154,9 @@ public override bool Execute()
154154
_mergeWith,
155155
_useSourceLink,
156156
_logger,
157-
DependencyInjection.Current.GetService<IInstrumentationHelper>(),
157+
ServiceProvider.GetService<IInstrumentationHelper>(),
158158
fileSystem,
159-
DependencyInjection.Current.GetService<ISourceRootTranslator>());
159+
ServiceProvider.GetService<ISourceRootTranslator>());
160160

161161
CoveragePrepareResult prepareResult = coverage.PrepareModules();
162162
InstrumenterState = new TaskItem(System.IO.Path.GetTempFileName());

0 commit comments

Comments
 (0)