ProviderBase
Provides a base implementation for the extensible provider model.
using System.Collections.Specialized;
namespace System.Configuration.Provider
{
public abstract class ProviderBase
{
private string _description;
private bool _initialized;
private string _name;
public virtual string Name => _name;
public virtual string Description {
get {
if (!string.IsNullOrEmpty(_description))
return _description;
return Name;
}
}
public virtual void Initialize(string name, NameValueCollection config)
{
lock (this) {
if (_initialized)
throw new InvalidOperationException(System.SR.Provider_Already_Initialized);
_initialized = true;
}
if (name == null)
throw new ArgumentNullException("name");
if (name.Length == 0)
throw new ArgumentException(System.SR.Config_provider_name_null_or_empty, "name");
_name = name;
if (config != null) {
_description = config["description"];
config.Remove("description");
}
}
}
}