From 720c4a0db1a2fb2aa3e08e5c99d5198873e448ba Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 1 Dec 2017 01:09:42 -0800 Subject: Introduce ExampleExtension for testing --- .../ExtensibilityServices/TupleDefinitionCreator.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/WixToolset.Core/ExtensibilityServices/TupleDefinitionCreator.cs') diff --git a/src/WixToolset.Core/ExtensibilityServices/TupleDefinitionCreator.cs b/src/WixToolset.Core/ExtensibilityServices/TupleDefinitionCreator.cs index 4075def8..b442da2b 100644 --- a/src/WixToolset.Core/ExtensibilityServices/TupleDefinitionCreator.cs +++ b/src/WixToolset.Core/ExtensibilityServices/TupleDefinitionCreator.cs @@ -19,8 +19,16 @@ namespace WixToolset.Core.ExtensibilityServices private IEnumerable ExtensionData { get; set; } + private Dictionary CustomDefinitionByName { get; } = new Dictionary(); + + public void AddCustomTupleDefinition(IntermediateTupleDefinition definition) + { + this.CustomDefinitionByName.Add(definition.Name, definition); + } + public bool TryGetTupleDefinitionByName(string name, out IntermediateTupleDefinition tupleDefinition) { + // First, look in the built-ins. tupleDefinition = TupleDefinitions.ByName(name); if (tupleDefinition == null) @@ -30,6 +38,7 @@ namespace WixToolset.Core.ExtensibilityServices this.LoadExtensionData(); } + // Second, look in the extensions. foreach (var data in this.ExtensionData) { if (data.TryGetTupleDefinitionByName(name, out tupleDefinition)) @@ -37,6 +46,12 @@ namespace WixToolset.Core.ExtensibilityServices break; } } + + // Finally, look in the custom tuple definitions provided during an intermediate load. + if (tupleDefinition == null) + { + this.CustomDefinitionByName.TryGetValue(name, out tupleDefinition); + } } return tupleDefinition != null; -- cgit v1.2.3-55-g6feb