aboutsummaryrefslogtreecommitdiff
path: root/src/test/Example.Extension/ExampleExtensionFactory.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/Example.Extension/ExampleExtensionFactory.cs')
-rw-r--r--src/test/Example.Extension/ExampleExtensionFactory.cs43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/test/Example.Extension/ExampleExtensionFactory.cs b/src/test/Example.Extension/ExampleExtensionFactory.cs
new file mode 100644
index 00000000..a081b758
--- /dev/null
+++ b/src/test/Example.Extension/ExampleExtensionFactory.cs
@@ -0,0 +1,43 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace Example.Extension
4{
5 using System;
6 using WixToolset.Extensibility;
7
8 public class ExampleExtensionFactory : IExtensionFactory
9 {
10 private ExamplePreprocessorExtensionAndCommandLine preprocessorExtension;
11
12 public bool TryCreateExtension(Type extensionType, out object extension)
13 {
14 if (extensionType == typeof(IExtensionCommandLine) || extensionType == typeof(IPreprocessorExtension))
15 {
16 if (preprocessorExtension == null)
17 {
18 preprocessorExtension = new ExamplePreprocessorExtensionAndCommandLine();
19 }
20
21 extension = preprocessorExtension;
22 }
23 else if (extensionType == typeof(ICompilerExtension))
24 {
25 extension = new ExampleCompilerExtension();
26 }
27 else if (extensionType == typeof(IExtensionData))
28 {
29 extension = new ExampleExtensionData();
30 }
31 else if (extensionType == typeof(IWindowsInstallerBackendExtension))
32 {
33 extension = new ExampleWindowsInstallerBackendExtension();
34 }
35 else
36 {
37 extension = null;
38 }
39
40 return extension != null;
41 }
42 }
43}