File: ProviderBase.cs

package info (click to toggle)
mono 4.6.2.7%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 778,148 kB
  • ctags: 914,052
  • sloc: cs: 5,779,509; xml: 2,773,713; ansic: 432,645; sh: 14,749; makefile: 12,361; perl: 2,488; python: 1,434; cpp: 849; asm: 531; sql: 95; sed: 16; php: 1
file content (37 lines) | stat: -rw-r--r-- 1,481 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//------------------------------------------------------------------------------
// <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;
    }
}