StreamConfigurationProvider
Defines the core behavior of stream-based configuration providers and provides a base for derived classes.
using System;
using System.IO;
using System.Runtime.CompilerServices;
namespace Microsoft.Extensions.Configuration
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
public abstract class StreamConfigurationProvider : ConfigurationProvider
{
private bool _loaded;
public StreamConfigurationSource Source { get; }
public StreamConfigurationProvider(StreamConfigurationSource source)
{
ExceptionPolyfills.ThrowIfNull(source, "source");
Source = source;
}
public abstract void Load(Stream stream);
public override void Load()
{
if (_loaded)
throw new InvalidOperationException(System.SR.StreamConfigurationProvidersAlreadyLoaded);
if (Source.Stream == null)
throw new InvalidOperationException(System.SR.StreamConfigurationSourceStreamCannotBeNull);
Load(Source.Stream);
_loaded = true;
}
}
}