/// <summary> /// Merges the <paramref name="addon"/> <see cref="RegistryXml"/> keys and values into the host's, and destroys the former. /// The <see cref="Key"/> or <see cref="Value"/> colections may be <c>Null</c> on either parameter, but on return they're guaranteed to be non-<c>Null</c> in this object. /// </summary> public void MergeWith([NotNull] RegistryXml addon) { if (addon == null) { throw new ArgumentNullException("addon"); } var keys = new List <RegistryKeyXml>(Key ?? new RegistryKeyXml[] {}); var values = new List <RegistryValueXml>(Value ?? new RegistryValueXml[] {}); foreach (RegistryKeyXml key in addon.Key ?? new RegistryKeyXml[] {}) { keys.Add(key); } foreach (RegistryValueXml value in addon.Value ?? new RegistryValueXml[] {}) { values.Add(value); } addon.Key = new RegistryKeyXml[] {}; addon.Value = new RegistryValueXml[] {}; Key = keys.ToArray(); Value = values.ToArray(); }
/// <summary> /// Makes sure all of the collections are non-Null (but may be empty). /// </summary> public void EnsureNotNull() { if (Registry == null) { Registry = new RegistryXml(); } Registry.EnsureNotNull(); if (Files == null) { Files = new FolderXml[] {} } ; }
public InstallationDataXml([NotNull] RegistryXml registry, [NotNull] params FolderXml[] folders) { if (registry == null) { throw new ArgumentNullException("registry"); } if (folders == null) { throw new ArgumentNullException("folders"); } Registry = registry; Files = folders; }
public InstallationDataXml(RegistryXml registry) : this(registry, new FolderXml[] {}) { }