/// <summary> /// Create a new Info block with new values and potentially a parent block. /// </summary> /// <param name="container">Container to write values into.</param> /// <param name="info">Required values for this block.</param> internal InfoBlock(RelevantInfoContainer container, NameValueCollection info) { ParentBlock = null; Container = container; CurrentInfo = new NameValueCollection(info); }
/// <summary> /// Starts a new Info block with a set of values. /// </summary> /// <param name="info">The values this Info block represents.</param> /// <param name="containerName">Name of the container to write into.</param> /// <returns>An <see cref="IDisposable"/> object for use with a using block.</returns> public static IDisposable Info(NameValueCollection info, string containerName = null) { if (containerName == null) { return(RootContainer.Info(info)); } else { if (!NamedContainers.TryGetValue(containerName, out var container)) { container = new RelevantInfoContainer(); if (!NamedContainers.TryAdd(containerName, container)) { container = NamedContainers[containerName]; } } return(container.Info(info)); } }