File: ProviderBase.cs

package info (click to toggle)
mono 6.12.0.199%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 1,296,836 kB
  • sloc: cs: 11,181,803; xml: 2,850,076; ansic: 699,709; cpp: 123,344; perl: 59,361; javascript: 30,841; asm: 21,853; makefile: 20,405; sh: 15,009; python: 4,839; pascal: 925; sql: 859; 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;
    }
}