diff options
| author | Rob Mensching <rob@firegiant.com> | 2021-03-14 11:17:20 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2021-03-14 11:28:04 -0700 |
| commit | 9aae370eee18b4c87300f333fa52f3cd0d7f34d1 (patch) | |
| tree | 27aae273837bb9041e7d509c410910a6df05796c /src/WixToolset.Extensibility/Data | |
| parent | f4af6bf27abaaac7f0508ce2beafb31b5a64b53f (diff) | |
| download | wix-9aae370eee18b4c87300f333fa52f3cd0d7f34d1.tar.gz wix-9aae370eee18b4c87300f333fa52f3cd0d7f34d1.tar.bz2 wix-9aae370eee18b4c87300f333fa52f3cd0d7f34d1.zip | |
Use extension methods instead of a custom interface for IServiceProvider
There are several helpful methods for getting services out of an
IServiceProvider. Instead of introducing a custom interface to inject
those methods into the inheritance tree, this change uses extension
methods to add the helper methods and reduce the number of custom
interfaces.
Diffstat (limited to 'src/WixToolset.Extensibility/Data')
12 files changed, 80 insertions, 22 deletions
diff --git a/src/WixToolset.Extensibility/Data/IBindContext.cs b/src/WixToolset.Extensibility/Data/IBindContext.cs index fd5a3ee4..ee165671 100644 --- a/src/WixToolset.Extensibility/Data/IBindContext.cs +++ b/src/WixToolset.Extensibility/Data/IBindContext.cs | |||
| @@ -2,50 +2,109 @@ | |||
| 2 | 2 | ||
| 3 | namespace WixToolset.Extensibility.Data | 3 | namespace WixToolset.Extensibility.Data |
| 4 | { | 4 | { |
| 5 | using System; | ||
| 5 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 6 | using System.Threading; | 7 | using System.Threading; |
| 7 | using WixToolset.Data; | 8 | using WixToolset.Data; |
| 8 | using WixToolset.Extensibility.Services; | ||
| 9 | 9 | ||
| 10 | #pragma warning disable 1591 // TODO: add documentation | 10 | /// <summary> |
| 11 | /// Bind context. | ||
| 12 | /// </summary> | ||
| 11 | public interface IBindContext | 13 | public interface IBindContext |
| 12 | { | 14 | { |
| 13 | IWixToolsetServiceProvider ServiceProvider { get; } | 15 | /// <summary> |
| 14 | 16 | /// Service provider. | |
| 17 | /// </summary> | ||
| 18 | IServiceProvider ServiceProvider { get; } | ||
| 19 | |||
| 20 | /// <summary> | ||
| 21 | /// Counnt of threads to use in cabbing. | ||
| 22 | /// </summary> | ||
| 15 | int CabbingThreadCount { get; set; } | 23 | int CabbingThreadCount { get; set; } |
| 16 | 24 | ||
| 25 | /// <summary> | ||
| 26 | /// Cabinet cache path. | ||
| 27 | /// </summary> | ||
| 17 | string CabCachePath { get; set; } | 28 | string CabCachePath { get; set; } |
| 18 | 29 | ||
| 30 | /// <summary> | ||
| 31 | /// Codepage for result. | ||
| 32 | /// </summary> | ||
| 19 | int Codepage { get; set; } | 33 | int Codepage { get; set; } |
| 20 | 34 | ||
| 35 | /// <summary> | ||
| 36 | /// Default compression level. | ||
| 37 | /// </summary> | ||
| 21 | CompressionLevel? DefaultCompressionLevel { get; set; } | 38 | CompressionLevel? DefaultCompressionLevel { get; set; } |
| 22 | 39 | ||
| 40 | /// <summary> | ||
| 41 | /// Delayed fields that need to be resolved again. | ||
| 42 | /// </summary> | ||
| 23 | IEnumerable<IDelayedField> DelayedFields { get; set; } | 43 | IEnumerable<IDelayedField> DelayedFields { get; set; } |
| 24 | 44 | ||
| 45 | /// <summary> | ||
| 46 | /// Embedded files to extract. | ||
| 47 | /// </summary> | ||
| 25 | IEnumerable<IExpectedExtractFile> ExpectedEmbeddedFiles { get; set; } | 48 | IEnumerable<IExpectedExtractFile> ExpectedEmbeddedFiles { get; set; } |
| 26 | 49 | ||
| 50 | /// <summary> | ||
| 51 | /// Binder extensions. | ||
| 52 | /// </summary> | ||
| 27 | IEnumerable<IBinderExtension> Extensions { get; set; } | 53 | IEnumerable<IBinderExtension> Extensions { get; set; } |
| 28 | 54 | ||
| 55 | /// <summary> | ||
| 56 | /// File system extensions. | ||
| 57 | /// </summary> | ||
| 29 | IEnumerable<IFileSystemExtension> FileSystemExtensions { get; set; } | 58 | IEnumerable<IFileSystemExtension> FileSystemExtensions { get; set; } |
| 30 | 59 | ||
| 60 | /// <summary> | ||
| 61 | /// Set of ICEs to execute. | ||
| 62 | /// </summary> | ||
| 31 | IEnumerable<string> Ices { get; set; } | 63 | IEnumerable<string> Ices { get; set; } |
| 32 | 64 | ||
| 65 | /// <summary> | ||
| 66 | /// Intermedaite folder. | ||
| 67 | /// </summary> | ||
| 33 | string IntermediateFolder { get; set; } | 68 | string IntermediateFolder { get; set; } |
| 34 | 69 | ||
| 70 | /// <summary> | ||
| 71 | /// Intermediate representation to bind. | ||
| 72 | /// </summary> | ||
| 35 | Intermediate IntermediateRepresentation { get; set; } | 73 | Intermediate IntermediateRepresentation { get; set; } |
| 36 | 74 | ||
| 75 | /// <summary> | ||
| 76 | /// Output path to bind to. | ||
| 77 | /// </summary> | ||
| 37 | string OutputPath { get; set; } | 78 | string OutputPath { get; set; } |
| 38 | 79 | ||
| 80 | /// <summary> | ||
| 81 | /// Type of PDB to create. | ||
| 82 | /// </summary> | ||
| 39 | PdbType PdbType { get; set; } | 83 | PdbType PdbType { get; set; } |
| 40 | 84 | ||
| 85 | /// <summary> | ||
| 86 | /// Output path for PDB. | ||
| 87 | /// </summary> | ||
| 41 | string PdbPath { get; set; } | 88 | string PdbPath { get; set; } |
| 42 | 89 | ||
| 90 | /// <summary> | ||
| 91 | /// Set of ICEs to skip. | ||
| 92 | /// </summary> | ||
| 43 | IEnumerable<string> SuppressIces { get; set; } | 93 | IEnumerable<string> SuppressIces { get; set; } |
| 44 | 94 | ||
| 95 | /// <summary> | ||
| 96 | /// Skip all ICEs. | ||
| 97 | /// </summary> | ||
| 45 | bool SuppressValidation { get; set; } | 98 | bool SuppressValidation { get; set; } |
| 46 | 99 | ||
| 100 | /// <summary> | ||
| 101 | /// Skip creation of output. | ||
| 102 | /// </summary> | ||
| 47 | bool SuppressLayout { get; set; } | 103 | bool SuppressLayout { get; set; } |
| 48 | 104 | ||
| 105 | /// <summary> | ||
| 106 | /// Cancellation token. | ||
| 107 | /// </summary> | ||
| 49 | CancellationToken CancellationToken { get; set; } | 108 | CancellationToken CancellationToken { get; set; } |
| 50 | } | 109 | } |
| 51 | } | 110 | } |
diff --git a/src/WixToolset.Extensibility/Data/ICommandLineContext.cs b/src/WixToolset.Extensibility/Data/ICommandLineContext.cs index fbaa84d1..d8c9469e 100644 --- a/src/WixToolset.Extensibility/Data/ICommandLineContext.cs +++ b/src/WixToolset.Extensibility/Data/ICommandLineContext.cs | |||
| @@ -8,7 +8,7 @@ namespace WixToolset.Extensibility.Data | |||
| 8 | #pragma warning disable 1591 // TODO: add documentation | 8 | #pragma warning disable 1591 // TODO: add documentation |
| 9 | public interface ICommandLineContext | 9 | public interface ICommandLineContext |
| 10 | { | 10 | { |
| 11 | IWixToolsetServiceProvider ServiceProvider { get; } | 11 | IServiceProvider ServiceProvider { get; } |
| 12 | 12 | ||
| 13 | IExtensionManager ExtensionManager { get; set; } | 13 | IExtensionManager ExtensionManager { get; set; } |
| 14 | 14 | ||
diff --git a/src/WixToolset.Extensibility/Data/ICompileContext.cs b/src/WixToolset.Extensibility/Data/ICompileContext.cs index 5da5ca84..a86fee1a 100644 --- a/src/WixToolset.Extensibility/Data/ICompileContext.cs +++ b/src/WixToolset.Extensibility/Data/ICompileContext.cs | |||
| @@ -2,11 +2,11 @@ | |||
| 2 | 2 | ||
| 3 | namespace WixToolset.Extensibility.Data | 3 | namespace WixToolset.Extensibility.Data |
| 4 | { | 4 | { |
| 5 | using System; | ||
| 5 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 6 | using System.Threading; | 7 | using System.Threading; |
| 7 | using System.Xml.Linq; | 8 | using System.Xml.Linq; |
| 8 | using WixToolset.Data; | 9 | using WixToolset.Data; |
| 9 | using WixToolset.Extensibility.Services; | ||
| 10 | 10 | ||
| 11 | /// <summary> | 11 | /// <summary> |
| 12 | /// Context provided to the compiler. | 12 | /// Context provided to the compiler. |
| @@ -16,7 +16,7 @@ namespace WixToolset.Extensibility.Data | |||
| 16 | /// <summary> | 16 | /// <summary> |
| 17 | /// Service provider made available to the compiler and its extensions. | 17 | /// Service provider made available to the compiler and its extensions. |
| 18 | /// </summary> | 18 | /// </summary> |
| 19 | IWixToolsetServiceProvider ServiceProvider { get; } | 19 | IServiceProvider ServiceProvider { get; } |
| 20 | 20 | ||
| 21 | /// <summary> | 21 | /// <summary> |
| 22 | /// Unique identifier for the compilation. | 22 | /// Unique identifier for the compilation. |
diff --git a/src/WixToolset.Extensibility/Data/IDecompileContext.cs b/src/WixToolset.Extensibility/Data/IDecompileContext.cs index f783a31e..63ed27d5 100644 --- a/src/WixToolset.Extensibility/Data/IDecompileContext.cs +++ b/src/WixToolset.Extensibility/Data/IDecompileContext.cs | |||
| @@ -10,7 +10,7 @@ namespace WixToolset.Extensibility.Data | |||
| 10 | #pragma warning disable 1591 // TODO: add documentation | 10 | #pragma warning disable 1591 // TODO: add documentation |
| 11 | public interface IDecompileContext | 11 | public interface IDecompileContext |
| 12 | { | 12 | { |
| 13 | IWixToolsetServiceProvider ServiceProvider { get; } | 13 | IServiceProvider ServiceProvider { get; } |
| 14 | 14 | ||
| 15 | string DecompilePath { get; set; } | 15 | string DecompilePath { get; set; } |
| 16 | 16 | ||
diff --git a/src/WixToolset.Extensibility/Data/IFileSystemContext.cs b/src/WixToolset.Extensibility/Data/IFileSystemContext.cs index 321fa83c..2e58059a 100644 --- a/src/WixToolset.Extensibility/Data/IFileSystemContext.cs +++ b/src/WixToolset.Extensibility/Data/IFileSystemContext.cs | |||
| @@ -9,7 +9,7 @@ namespace WixToolset.Extensibility.Data | |||
| 9 | #pragma warning disable 1591 // TODO: add documentation | 9 | #pragma warning disable 1591 // TODO: add documentation |
| 10 | public interface IFileSystemContext | 10 | public interface IFileSystemContext |
| 11 | { | 11 | { |
| 12 | IWixToolsetServiceProvider ServiceProvider { get; } | 12 | IServiceProvider ServiceProvider { get; } |
| 13 | 13 | ||
| 14 | string CabCachePath { get; set; } | 14 | string CabCachePath { get; set; } |
| 15 | 15 | ||
diff --git a/src/WixToolset.Extensibility/Data/IInscribeContext.cs b/src/WixToolset.Extensibility/Data/IInscribeContext.cs index 79d4d1f5..31c66aad 100644 --- a/src/WixToolset.Extensibility/Data/IInscribeContext.cs +++ b/src/WixToolset.Extensibility/Data/IInscribeContext.cs | |||
| @@ -8,7 +8,7 @@ namespace WixToolset.Extensibility.Data | |||
| 8 | #pragma warning disable 1591 // TODO: add documentation | 8 | #pragma warning disable 1591 // TODO: add documentation |
| 9 | public interface IInscribeContext | 9 | public interface IInscribeContext |
| 10 | { | 10 | { |
| 11 | IWixToolsetServiceProvider ServiceProvider { get; } | 11 | IServiceProvider ServiceProvider { get; } |
| 12 | 12 | ||
| 13 | string InputFilePath { get; set; } | 13 | string InputFilePath { get; set; } |
| 14 | 14 | ||
diff --git a/src/WixToolset.Extensibility/Data/ILayoutContext.cs b/src/WixToolset.Extensibility/Data/ILayoutContext.cs index 89d61d5c..6b6c280a 100644 --- a/src/WixToolset.Extensibility/Data/ILayoutContext.cs +++ b/src/WixToolset.Extensibility/Data/ILayoutContext.cs | |||
| @@ -2,14 +2,14 @@ | |||
| 2 | 2 | ||
| 3 | namespace WixToolset.Extensibility.Data | 3 | namespace WixToolset.Extensibility.Data |
| 4 | { | 4 | { |
| 5 | using System; | ||
| 5 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 6 | using System.Threading; | 7 | using System.Threading; |
| 7 | using WixToolset.Extensibility.Services; | ||
| 8 | 8 | ||
| 9 | #pragma warning disable 1591 // TODO: add documentation | 9 | #pragma warning disable 1591 // TODO: add documentation |
| 10 | public interface ILayoutContext | 10 | public interface ILayoutContext |
| 11 | { | 11 | { |
| 12 | IWixToolsetServiceProvider ServiceProvider { get; } | 12 | IServiceProvider ServiceProvider { get; } |
| 13 | 13 | ||
| 14 | IEnumerable<ILayoutExtension> Extensions { get; set; } | 14 | IEnumerable<ILayoutExtension> Extensions { get; set; } |
| 15 | 15 | ||
diff --git a/src/WixToolset.Extensibility/Data/ILibraryContext.cs b/src/WixToolset.Extensibility/Data/ILibraryContext.cs index 68a9faa9..d6359ffc 100644 --- a/src/WixToolset.Extensibility/Data/ILibraryContext.cs +++ b/src/WixToolset.Extensibility/Data/ILibraryContext.cs | |||
| @@ -2,15 +2,15 @@ | |||
| 2 | 2 | ||
| 3 | namespace WixToolset.Extensibility.Data | 3 | namespace WixToolset.Extensibility.Data |
| 4 | { | 4 | { |
| 5 | using System; | ||
| 5 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 6 | using System.Threading; | 7 | using System.Threading; |
| 7 | using WixToolset.Data; | 8 | using WixToolset.Data; |
| 8 | using WixToolset.Extensibility.Services; | ||
| 9 | 9 | ||
| 10 | #pragma warning disable 1591 // TODO: add documentation | 10 | #pragma warning disable 1591 // TODO: add documentation |
| 11 | public interface ILibraryContext | 11 | public interface ILibraryContext |
| 12 | { | 12 | { |
| 13 | IWixToolsetServiceProvider ServiceProvider { get; } | 13 | IServiceProvider ServiceProvider { get; } |
| 14 | 14 | ||
| 15 | bool BindFiles { get; set; } | 15 | bool BindFiles { get; set; } |
| 16 | 16 | ||
diff --git a/src/WixToolset.Extensibility/Data/ILinkContext.cs b/src/WixToolset.Extensibility/Data/ILinkContext.cs index c6c9cf7d..7524d18c 100644 --- a/src/WixToolset.Extensibility/Data/ILinkContext.cs +++ b/src/WixToolset.Extensibility/Data/ILinkContext.cs | |||
| @@ -2,15 +2,15 @@ | |||
| 2 | 2 | ||
| 3 | namespace WixToolset.Extensibility.Data | 3 | namespace WixToolset.Extensibility.Data |
| 4 | { | 4 | { |
| 5 | using System; | ||
| 5 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 6 | using System.Threading; | 7 | using System.Threading; |
| 7 | using WixToolset.Data; | 8 | using WixToolset.Data; |
| 8 | using WixToolset.Extensibility.Services; | ||
| 9 | 9 | ||
| 10 | #pragma warning disable 1591 // TODO: add documentation | 10 | #pragma warning disable 1591 // TODO: add documentation |
| 11 | public interface ILinkContext | 11 | public interface ILinkContext |
| 12 | { | 12 | { |
| 13 | IWixToolsetServiceProvider ServiceProvider { get; } | 13 | IServiceProvider ServiceProvider { get; } |
| 14 | 14 | ||
| 15 | IEnumerable<ILinkerExtension> Extensions { get; set; } | 15 | IEnumerable<ILinkerExtension> Extensions { get; set; } |
| 16 | 16 | ||
diff --git a/src/WixToolset.Extensibility/Data/IPreprocessContext.cs b/src/WixToolset.Extensibility/Data/IPreprocessContext.cs index b07fb81f..c6bdfe3a 100644 --- a/src/WixToolset.Extensibility/Data/IPreprocessContext.cs +++ b/src/WixToolset.Extensibility/Data/IPreprocessContext.cs | |||
| @@ -2,15 +2,15 @@ | |||
| 2 | 2 | ||
| 3 | namespace WixToolset.Extensibility.Data | 3 | namespace WixToolset.Extensibility.Data |
| 4 | { | 4 | { |
| 5 | using System; | ||
| 5 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 6 | using System.Threading; | 7 | using System.Threading; |
| 7 | using WixToolset.Data; | 8 | using WixToolset.Data; |
| 8 | using WixToolset.Extensibility.Services; | ||
| 9 | 9 | ||
| 10 | #pragma warning disable 1591 // TODO: add documentation | 10 | #pragma warning disable 1591 // TODO: add documentation |
| 11 | public interface IPreprocessContext | 11 | public interface IPreprocessContext |
| 12 | { | 12 | { |
| 13 | IWixToolsetServiceProvider ServiceProvider { get; } | 13 | IServiceProvider ServiceProvider { get; } |
| 14 | 14 | ||
| 15 | IEnumerable<IPreprocessorExtension> Extensions { get; set; } | 15 | IEnumerable<IPreprocessorExtension> Extensions { get; set; } |
| 16 | 16 | ||
diff --git a/src/WixToolset.Extensibility/Data/IResolveContext.cs b/src/WixToolset.Extensibility/Data/IResolveContext.cs index 2c775932..79191a15 100644 --- a/src/WixToolset.Extensibility/Data/IResolveContext.cs +++ b/src/WixToolset.Extensibility/Data/IResolveContext.cs | |||
| @@ -2,15 +2,15 @@ | |||
| 2 | 2 | ||
| 3 | namespace WixToolset.Extensibility.Data | 3 | namespace WixToolset.Extensibility.Data |
| 4 | { | 4 | { |
| 5 | using System; | ||
| 5 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 6 | using System.Threading; | 7 | using System.Threading; |
| 7 | using WixToolset.Data; | 8 | using WixToolset.Data; |
| 8 | using WixToolset.Extensibility.Services; | ||
| 9 | 9 | ||
| 10 | #pragma warning disable 1591 // TODO: add documentation | 10 | #pragma warning disable 1591 // TODO: add documentation |
| 11 | public interface IResolveContext | 11 | public interface IResolveContext |
| 12 | { | 12 | { |
| 13 | IWixToolsetServiceProvider ServiceProvider { get; } | 13 | IServiceProvider ServiceProvider { get; } |
| 14 | 14 | ||
| 15 | IEnumerable<IBindPath> BindPaths { get; set; } | 15 | IEnumerable<IBindPath> BindPaths { get; set; } |
| 16 | 16 | ||
diff --git a/src/WixToolset.Extensibility/Data/IUnbindContext.cs b/src/WixToolset.Extensibility/Data/IUnbindContext.cs index faf77f5d..6427422f 100644 --- a/src/WixToolset.Extensibility/Data/IUnbindContext.cs +++ b/src/WixToolset.Extensibility/Data/IUnbindContext.cs | |||
| @@ -3,12 +3,11 @@ | |||
| 3 | namespace WixToolset.Extensibility.Data | 3 | namespace WixToolset.Extensibility.Data |
| 4 | { | 4 | { |
| 5 | using System; | 5 | using System; |
| 6 | using WixToolset.Extensibility.Services; | ||
| 7 | 6 | ||
| 8 | #pragma warning disable 1591 // TODO: add documentation | 7 | #pragma warning disable 1591 // TODO: add documentation |
| 9 | public interface IUnbindContext | 8 | public interface IUnbindContext |
| 10 | { | 9 | { |
| 11 | IWixToolsetServiceProvider ServiceProvider { get; } | 10 | IServiceProvider ServiceProvider { get; } |
| 12 | 11 | ||
| 13 | string ExportBasePath { get; set; } | 12 | string ExportBasePath { get; set; } |
| 14 | 13 | ||
