/main/Shared/WiXAutomationInteface/IsWiXNamespaces.cs

# · C# · 61 lines · 55 code · 6 blank · 0 comment · 1 complexity · 34baee6ec6e5b7efa2fd883094a3b12b MD5 · raw file

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Xml.Linq;
  5. namespace IsWiXAutomationInterface
  6. {
  7. public class WiXNamespaces : Dictionary< string, string >
  8. {
  9. XDocument _document;
  10. public WiXNamespaces(XDocument Document)
  11. {
  12. _document = Document;
  13. Load();
  14. }
  15. public void Load()
  16. {
  17. foreach (var item in this.PossibleNamespaces)
  18. {
  19. if (_document.NameSpaces().Keys.Contains(item.Key))
  20. {
  21. base.Add(item.Key, item.Value);
  22. }
  23. }
  24. }
  25. public new void Add(string key, string uri)
  26. {
  27. base.Add(key, uri);
  28. _document.Root.Add(new XAttribute(XNamespace.Xmlns + key, uri));
  29. }
  30. public new void Remove(string key)
  31. {
  32. base.Remove(key);
  33. _document.Root.Attribute(XNamespace.Xmlns + key).Remove();
  34. }
  35. public Dictionary<string, string> PossibleNamespaces
  36. {
  37. get
  38. {
  39. var _extensions = new Dictionary<string, string>();
  40. _extensions.Add("complus", "http://schemas.microsoft.com/wix/ComPlusExtension");
  41. _extensions.Add("difxapp", "http://schemas.microsoft.com/wix/DifxAppExtension");
  42. _extensions.Add("firewall", "http://schemas.microsoft.com/wix/FirewallExtension");
  43. _extensions.Add("gaming", "http://schemas.microsoft.com/wix/GamingExtension");
  44. _extensions.Add("iis", "http://schemas.microsoft.com/wix/IIsExtension");
  45. _extensions.Add("msmq", "http://schemas.microsoft.com/wix/MsmqExtension");
  46. _extensions.Add("netfx", "http://schemas.microsoft.com/wix/NetFxExtension");
  47. _extensions.Add("ps", "http://schemas.microsoft.com/wix/PSExtension");
  48. _extensions.Add("sql", "http://schemas.microsoft.com/wix/SqlExtension");
  49. _extensions.Add("util", "http://schemas.microsoft.com/wix/UtilExtension");
  50. _extensions.Add("vs", "http://schemas.microsoft.com/wix/VSExtension");
  51. return _extensions;
  52. }
  53. }
  54. }
  55. }