| File: System\Configuration\SectionInput.cs | Web Access |
| Project: src\runtime\src\libraries\System.Configuration.ConfigurationManager\src\System.Configuration.ConfigurationManager.csproj (System.Configuration.ConfigurationManager) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Generic; using System.Diagnostics; namespace System.Configuration { [DebuggerDisplay("SectionInput {SectionXmlInfo.ConfigKey}")] internal sealed class SectionInput { // result can be null, so we use this object to indicate whether it has been evaluated private static readonly object s_unevaluated = new object(); // accumulated errors related to this input private readonly List<ConfigurationException> _errors; // Provider to use for encryption private ProtectedConfigurationProvider _protectionProvider; internal SectionInput(SectionXmlInfo sectionXmlInfo, List<ConfigurationException> errors) { SectionXmlInfo = sectionXmlInfo; _errors = errors; Result = s_unevaluated; ResultRuntimeObject = s_unevaluated; } internal SectionXmlInfo SectionXmlInfo { get; } internal bool HasResult => Result != s_unevaluated; internal bool HasResultRuntimeObject => ResultRuntimeObject != s_unevaluated; internal object Result { get; set; } internal object ResultRuntimeObject { get; set; } internal bool IsProtectionProviderDetermined { get; private set; } internal ProtectedConfigurationProvider ProtectionProvider { get { return _protectionProvider; } set { _protectionProvider = value; IsProtectionProviderDetermined = true; } } // Errors associated with a section input. internal ICollection<ConfigurationException> Errors => _errors; internal bool HasErrors => ErrorsHelper.GetHasErrors(_errors); internal void ClearResult() { Result = s_unevaluated; ResultRuntimeObject = s_unevaluated; } internal void ThrowOnErrors() { ErrorsHelper.ThrowOnErrors(_errors); } } }