From 3ccd5e439da4296d6f2b66ce47075ab20d039676 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 14 Mar 2021 07:38:48 -0700 Subject: Minimize public surface area of Core Fixes wixtoolset/issues#6374 --- src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs') diff --git a/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs b/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs index 14b6d011..0afcc2b3 100644 --- a/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs +++ b/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs @@ -10,19 +10,18 @@ namespace WixToolset.Core.Bind using WixToolset.Extensibility.Data; using WixToolset.Extensibility.Services; -#pragma warning disable 1591 // TODO: this shouldn't be public, need interface in Extensibility /// /// Resolves the fields which had variables that needed to be resolved after the file information /// was loaded. /// - public class ResolveDelayedFieldsCommand + internal class ResolveDelayedFieldsCommand { /// /// Resolve delayed fields. /// /// /// The fields which had resolution delayed. - /// The file information to use when resolving variables. + /// The cached variable values used when resolving delayed fields. public ResolveDelayedFieldsCommand(IMessaging messaging, IEnumerable delayedFields, Dictionary variableCache) { this.Messaging = messaging; @@ -49,7 +48,7 @@ namespace WixToolset.Core.Bind // process properties first in case they refer to other binder variables if (delayedField.Symbol.Definition.Type == SymbolDefinitionType.Property) { - var value = ResolveDelayedVariables(propertySymbol.SourceLineNumbers, delayedField.Field.AsString(), this.VariableCache); + var value = this.ResolveDelayedVariables(propertySymbol.SourceLineNumbers, delayedField.Field.AsString()); // update the variable cache with the new value var key = String.Concat("property.", propertySymbol.Id.Id); @@ -72,7 +71,7 @@ namespace WixToolset.Core.Bind // add specialization for ProductVersion fields var keyProductVersion = "property.ProductVersion"; - if (this.VariableCache.TryGetValue(keyProductVersion, out var versionValue) && Version.TryParse(versionValue, out Version productVersion)) + if (this.VariableCache.TryGetValue(keyProductVersion, out var versionValue) && Version.TryParse(versionValue, out var productVersion)) { // Don't add the variable if it already exists (developer defined a property with the same name). var fieldKey = String.Concat(keyProductVersion, ".Major"); @@ -105,7 +104,7 @@ namespace WixToolset.Core.Bind { try { - var value = ResolveDelayedVariables(delayedField.Symbol.SourceLineNumbers, delayedField.Field.AsString(), this.VariableCache); + var value = this.ResolveDelayedVariables(delayedField.Symbol.SourceLineNumbers, delayedField.Field.AsString()); delayedField.Field.Set(value); } catch (WixException we) @@ -115,7 +114,7 @@ namespace WixToolset.Core.Bind } } - private static string ResolveDelayedVariables(SourceLineNumber sourceLineNumbers, string value, IDictionary resolutionData) + private string ResolveDelayedVariables(SourceLineNumber sourceLineNumbers, string value) { var start = 0; @@ -125,7 +124,7 @@ namespace WixToolset.Core.Bind { var key = String.Concat(parsed.Name, ".", parsed.Scope); - if (!resolutionData.TryGetValue(key, out var resolvedValue)) + if (!this.VariableCache.TryGetValue(key, out var resolvedValue)) { resolvedValue = parsed.DefaultValue; } @@ -149,7 +148,7 @@ namespace WixToolset.Core.Bind } else { - throw new WixException(ErrorMessages.UnresolvedBindReference(sourceLineNumbers, value)); + this.Messaging.Write(ErrorMessages.UnresolvedBindReference(sourceLineNumbers, value)); } } else -- cgit v1.2.3-55-g6feb