Xamarin Public Jenkins c042cd0c52 Imported Upstream version 4.2.0.179
Former-commit-id: 4610231f55806d2a05ed69e5ff3faa7336cc1479
2015-11-10 15:03:43 +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;
}
}