TypedElement.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / Diagnostics / TypedElement.cs / 1 / TypedElement.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 
using System.Configuration;
using System; 
using System.Reflection; 
using System.Globalization;
 
namespace System.Diagnostics {
    internal class TypedElement : ConfigurationElement {
        protected static readonly ConfigurationProperty _propTypeName = new ConfigurationProperty("type", typeof(string), String.Empty, ConfigurationPropertyOptions.IsRequired);
        protected static readonly ConfigurationProperty _propInitData = new ConfigurationProperty("initializeData", typeof(string), String.Empty, ConfigurationPropertyOptions.None); 

        protected ConfigurationPropertyCollection _properties; 
        protected object _runtimeObject = null; 
        private Type _baseType;
 
        public TypedElement(Type baseType) : base() {
            _properties = new ConfigurationPropertyCollection();
            _properties.Add(_propTypeName);
            _properties.Add(_propInitData); 

            _baseType = baseType; 
        } 

        [ConfigurationProperty("initializeData", DefaultValue = "")] 
        public string InitData {
            get {
                return (string) this[_propInitData];
            } 
            // This is useful when the OM becomes public. In the meantime, this can be utilized via reflection
            set { 
                this[_propInitData] = value; 
            }
 
        }

        protected override ConfigurationPropertyCollection Properties {
            get { 
                return _properties;
            } 
        } 

        [ConfigurationProperty("type", IsRequired = true, DefaultValue = "")] 
        public virtual string TypeName {
            get {
                return (string) this[_propTypeName];
            } 
            set {
                this[_propTypeName] = value; 
            } 
        }
 
        protected object BaseGetRuntimeObject() {
            if (_runtimeObject == null)
                _runtimeObject = TraceUtils.GetRuntimeObject(TypeName, _baseType, InitData);
 
            return _runtimeObject;
        } 
 
    }
} 


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK