Xamarin Public Jenkins (auto-signing) e79aa3c0ed Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
2016-08-03 10:59:49 +00:00

38 lines
1.4 KiB
C#

//------------------------------------------------------------------------------
// <copyright file="ProviderBase.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
namespace System.Configuration.Provider {
using System.Collections.Specialized;
using System.Runtime.Serialization;
public abstract class ProviderBase {
private string _name;
private string _Description;
public virtual string Name { get { return _name; } }
public virtual string Description { get { return string.IsNullOrEmpty(_Description) ? Name : _Description; } }
public virtual void Initialize(string name, NameValueCollection config) {
lock (this) {
if (_Initialized)
throw new InvalidOperationException(SR.GetString(SR.Provider_Already_Initialized));
_Initialized = true;
}
if (name == null)
throw new ArgumentNullException("name");
if (name.Length == 0)
throw new ArgumentException(SR.GetString(SR.Config_provider_name_null_or_empty), "name");
_name = name;
if (config != null) {
_Description = config["description"];
config.Remove("description");
}
}
private bool _Initialized;
}
}