/// <summary>
        /// Constructor that accepts Stream, for .NET Core/PCL/Universal apps
        /// </summary>
        /// <param name="configContents">Raw XML from Web.config, AppSettings.config and ConnectionStrings.config</param>
        /// <param name="configPathFile">File containing app settings and connection strings</param>
        public ConfigurationManagerSafe(Stream configContents, string configPathFile) : this()
        {
            XDocument xdoc = configContents.ToXDocument();

            AppSettings       = new AppSettingList(xdoc, configPathFile);
            ConnectionStrings = new ConnectionStringList(xdoc, configPathFile);
        }
 /// <summary>
 /// Constructor that accepts AppSettings and ConnectionStrings XML data in string form
 /// Usage: From the Application project, 1. Read .config XML from filesystem, 2. Pass xml into constructor as strings
 ///  - .NET Core:
 ///     var configManager = new ConfigurationManagerSafe(System.Configuration.ConfigurationManager.AppSettings,
 ///                                                 System.Configuration.ConfigurationManager.ConnectionStrings);
 ///  - .NET 4.x Full:
 ///     var configManager = new ConfigurationManagerSafe(System.Configuration.ConfigurationManager.AppSettings,
 ///                                                 System.Configuration.ConfigurationManager.ConnectionStrings);
 ///  - Desktop and UWP:
 ///     var localFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
 ///     localFolder = await localFolder.GetFolderAsync("App_Data");
 ///     var appSettingsFile = await localFolder.GetFileAsync("AppSettings.config");
 ///     var connectStringsFile = await localFolder.GetFileAsync("ConnectionStrings.config");
 ///     var configManager = new ConfigurationManagerSafe(appSettingsXml, connectStringsXml);
 ///  - UWP:
 ///     var appSettingsXml = await Windows.Storage.FileIO.ReadTextAsync(appSettingsFile);
 ///     var connectStringsXml = await Windows.Storage.FileIO.ReadTextAsync(connectStringsFile);
 /// </summary>
 /// <param name="appSettings">Raw XML from AppSettings.config</param>
 /// <param name="appSettingsPathFile">Path\File containing AppSettings</param>
 /// <param name="connectionStrings">Raw XML from ConnectionStrings.config</param>
 /// <param name="connectionStringsPathFile">Path\File containing ConnectionStrings</param>
 public ConfigurationManagerSafe(XDocument appSettings, string appSettingsPathFile, XDocument connectionStrings, string connectionStringsPathFile) : this()
 {
     AppSettings       = new AppSettingList(appSettings, appSettingsPathFile);
     ConnectionStrings = new ConnectionStringList(connectionStrings, connectionStringsPathFile);
 }