Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Configuration / System / Configuration / ConfigurationProperty.cs / 1305376 / ConfigurationProperty.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.ComponentModel; using System.Security.Permissions; using System.Collections.Generic; using System.Collections.Specialized; using System.Reflection; using System.Text; namespace System.Configuration { public sealed class ConfigurationProperty { internal static readonly ConfigurationValidatorBase NonEmptyStringValidator = new StringValidator(1); private readonly static ConfigurationValidatorBase DefaultValidatorInstance = new DefaultValidator(); internal static readonly string DefaultCollectionPropertyName = ""; private string _name; private string _providedName; private string _description; private Type _type; private Object _defaultValue; private TypeConverter _converter; private ConfigurationPropertyOptions _options; private ConfigurationValidatorBase _validator; private String _addElementName = null; private String _removeElementName = null; private String _clearElementName = null; private bool _isTypeInited; private bool _isConfigurationElementType; public ConfigurationProperty(String name, Type type) { object defaultValue = null; ConstructorInit(name, type, ConfigurationPropertyOptions.None, null, null); if (type == typeof(string)) { defaultValue = String.Empty; } else if (type.IsValueType) { defaultValue = TypeUtil.CreateInstanceWithReflectionPermission(type); } SetDefaultValue(defaultValue); } public ConfigurationProperty(String name, Type type, Object defaultValue) : this(name, type, defaultValue, ConfigurationPropertyOptions.None) { } public ConfigurationProperty(String name, Type type, Object defaultValue, ConfigurationPropertyOptions options) : this(name, type, defaultValue, null, null, options) { } public ConfigurationProperty(String name, Type type, Object defaultValue, TypeConverter typeConverter, ConfigurationValidatorBase validator, ConfigurationPropertyOptions options) : this(name, type, defaultValue, typeConverter, validator, options, null) { } public ConfigurationProperty(String name, Type type, Object defaultValue, TypeConverter typeConverter, ConfigurationValidatorBase validator, ConfigurationPropertyOptions options, string description) { ConstructorInit(name, type, options, validator, typeConverter); SetDefaultValue(defaultValue); } internal ConfigurationProperty(PropertyInfo info) { Debug.Assert(info != null, "info != null"); // Bellow are the attributes we handle TypeConverterAttribute attribConverter = null; ConfigurationPropertyAttribute attribProperty = null; ConfigurationValidatorAttribute attribValidator = null; // Compatability attributes // If the approprite data is provided in the ConfigPropAttribute then the one bellow will be ignored DescriptionAttribute attribStdDescription = null; DefaultValueAttribute attribStdDefault = null; TypeConverter typeConverter = null; ConfigurationValidatorBase validator = null; // Find the interesting attributes in the collection foreach (Attribute attribute in Attribute.GetCustomAttributes(info)) { if (attribute is TypeConverterAttribute) { attribConverter = (TypeConverterAttribute)attribute; typeConverter = (TypeConverter)TypeUtil.CreateInstanceWithReflectionPermission(attribConverter.ConverterTypeName); } else if (attribute is ConfigurationPropertyAttribute) { attribProperty = (ConfigurationPropertyAttribute)attribute; } else if (attribute is ConfigurationValidatorAttribute) { // There could be more then one validator attribute specified on a property // Currently we consider this an error since it's too late to fix it for whidbey // but the right thing to do is to introduce new validator type ( CompositeValidator ) that is a list of validators and executes // them all if (validator != null) { throw new ConfigurationErrorsException(SR.GetString(SR.Validator_multiple_validator_attributes, info.Name)); } attribValidator = (ConfigurationValidatorAttribute)attribute; validator = attribValidator.ValidatorInstance; } else if (attribute is DescriptionAttribute) { attribStdDescription = (DescriptionAttribute)attribute; } else if (attribute is DefaultValueAttribute) { attribStdDefault = (DefaultValueAttribute)attribute; } } Type propertyType = info.PropertyType; // Collections need some customization when the collection attribute is present if (typeof(ConfigurationElementCollection).IsAssignableFrom(propertyType)) { ConfigurationCollectionAttribute attribCollection = Attribute.GetCustomAttribute(info, typeof(ConfigurationCollectionAttribute)) as ConfigurationCollectionAttribute; // If none on the property - see if there is an attribute on the collection type itself if (attribCollection == null) { attribCollection = Attribute.GetCustomAttribute(propertyType, typeof(ConfigurationCollectionAttribute)) as ConfigurationCollectionAttribute; } if (attribCollection != null) { if (attribCollection.AddItemName.IndexOf(',') == -1) { _addElementName = attribCollection.AddItemName; } _removeElementName = attribCollection.RemoveItemName; _clearElementName = attribCollection.ClearItemsName; } } // This constructor shouldnt be invoked if the reflection info is not for an actual config property Debug.Assert(attribProperty != null, "attribProperty != null"); ConstructorInit(attribProperty.Name, info.PropertyType, attribProperty.Options, validator, typeConverter); // Figure out the default value InitDefaultValueFromTypeInfo(attribProperty, attribStdDefault); // Get the description if ((attribStdDescription != null) && !string.IsNullOrEmpty(attribStdDescription.Description)) { _description = attribStdDescription.Description; } } private void ConstructorInit(string name, Type type, ConfigurationPropertyOptions options, ConfigurationValidatorBase validator, TypeConverter converter) { if (typeof(ConfigurationSection).IsAssignableFrom(type)) { throw new ConfigurationErrorsException(SR.GetString(SR.Config_properties_may_not_be_derived_from_configuration_section, name)); } _providedName = name; // save the provided name so we can check for default collection names if ((options & ConfigurationPropertyOptions.IsDefaultCollection) != 0 && String.IsNullOrEmpty(name)) { name = DefaultCollectionPropertyName; } else { ValidatePropertyName(name); } _name = name; _type = type; _options = options; _validator = validator; _converter = converter; // Use the default validator if none was supplied if (_validator == null) { _validator = DefaultValidatorInstance; } else { // Make sure the supplied validator supports the type of this property if (!_validator.CanValidate(_type)) { throw new ConfigurationErrorsException(SR.GetString(SR.Validator_does_not_support_prop_type, _name)); } } } private void ValidatePropertyName(string name) { if (string.IsNullOrEmpty(name)) { throw new ArgumentException(SR.GetString(SR.String_null_or_empty), "name"); } if (BaseConfigurationRecord.IsReservedAttributeName(name)) { throw new ArgumentException(SR.GetString(SR.Property_name_reserved, name)); } } private void SetDefaultValue(object value) { // Validate the default value if any. This should make errors from invalid defaults easier to catch if (value != null && value != ConfigurationElement.s_nullPropertyValue) { bool canAssign = _type.IsAssignableFrom(value.GetType()); if (!canAssign && this.Converter.CanConvertFrom(value.GetType())) { value = this.Converter.ConvertFrom(value); } else if (!canAssign) { throw new ConfigurationErrorsException(SR.GetString(SR.Default_value_wrong_type, _name)); } Validate(value); _defaultValue = value; } } private void InitDefaultValueFromTypeInfo(ConfigurationPropertyAttribute attribProperty, DefaultValueAttribute attribStdDefault) { object defaultValue = attribProperty.DefaultValue; // If there is no default value there - try the other attribute ( the clr standard one ) if ((defaultValue == null || defaultValue == ConfigurationElement.s_nullPropertyValue) && (attribStdDefault != null)) { defaultValue = attribStdDefault.Value; } // If there was a default value in the prop attribute - check if we need to convert it from string if ((defaultValue != null) && (defaultValue is string) && (_type != typeof(string))) { // Use the converter to parse this property default value try { defaultValue = Converter.ConvertFromInvariantString((string)defaultValue); } catch (Exception ex) { throw new ConfigurationErrorsException(SR.GetString(SR.Default_value_conversion_error_from_string, _name, ex.Message)); } } if (defaultValue == null || defaultValue == ConfigurationElement.s_nullPropertyValue) { if (_type == typeof(string)) { defaultValue = String.Empty; } else if (_type.IsValueType) { defaultValue = TypeUtil.CreateInstanceWithReflectionPermission(_type); } } SetDefaultValue(defaultValue); } public string Name { get { return _name; } } public string Description { get { return _description; } } internal string ProvidedName { get { return _providedName; } } internal bool IsConfigurationElementType { get { if (!_isTypeInited) { _isConfigurationElementType = typeof(ConfigurationElement).IsAssignableFrom(_type); _isTypeInited = true; } return _isConfigurationElementType; } } public Type Type { get { return _type; } } public Object DefaultValue { get { return _defaultValue; } } public bool IsRequired { get { return (_options & ConfigurationPropertyOptions.IsRequired) != 0; } } public bool IsKey { get { return (_options & ConfigurationPropertyOptions.IsKey) != 0; } } public bool IsDefaultCollection { get { return ((_options & ConfigurationPropertyOptions.IsDefaultCollection) != 0); } } public bool IsTypeStringTransformationRequired { get { return (_options & ConfigurationPropertyOptions.IsTypeStringTransformationRequired) != 0; } } public bool IsAssemblyStringTransformationRequired { get { return (_options & ConfigurationPropertyOptions.IsAssemblyStringTransformationRequired) != 0; } } public bool IsVersionCheckRequired { get { return (_options & ConfigurationPropertyOptions.IsVersionCheckRequired) != 0; } } public TypeConverter Converter { get { CreateConverter(); return _converter; } } public ConfigurationValidatorBase Validator { get { return _validator; } } internal String AddElementName { get { return _addElementName; } } internal String RemoveElementName { get { return _removeElementName; } } internal String ClearElementName { get { return _clearElementName; } } internal Object ConvertFromString(string value) { object result = null; try { result = Converter.ConvertFromInvariantString(value); } catch (Exception ex) { throw new ConfigurationErrorsException(SR.GetString(SR.Top_level_conversion_error_from_string, _name, ex.Message)); } return result; } internal string ConvertToString(Object value) { string result = null; try { if (_type == typeof(bool)) { result = ((bool)value) ? "true" : "false"; // the converter will break 1.1 compat for bool } else { result = Converter.ConvertToInvariantString(value); } } catch (Exception ex) { throw new ConfigurationErrorsException(SR.GetString(SR.Top_level_conversion_error_to_string, _name, ex.Message)); } return result; } internal void Validate(object value) { try { _validator.Validate(value); } catch (Exception ex) { throw new ConfigurationErrorsException(SR.GetString(SR.Top_level_validation_error, _name, ex.Message),ex); } } private void CreateConverter() { // Some properties cannot have type converters. // Such examples are properties that are ConfigurationElement ( derived classes ) // or properties which are user-defined and the user code handles serialization/desirialization so // the property itself is never converted to/from string if (_converter == null) { // Enums are exception. We use our custom converter for all enums if (_type.IsEnum) { _converter = new GenericEnumConverter(_type); } else if (!_type.IsSubclassOf(typeof(ConfigurationElement))) { _converter = TypeDescriptor.GetConverter(_type); if ((_converter == null) || !_converter.CanConvertFrom(typeof(String)) || !_converter.CanConvertTo(typeof(String))) { throw new ConfigurationErrorsException(SR.GetString(SR.No_converter, _name, _type.Name)); } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.ComponentModel; using System.Security.Permissions; using System.Collections.Generic; using System.Collections.Specialized; using System.Reflection; using System.Text; namespace System.Configuration { public sealed class ConfigurationProperty { internal static readonly ConfigurationValidatorBase NonEmptyStringValidator = new StringValidator(1); private readonly static ConfigurationValidatorBase DefaultValidatorInstance = new DefaultValidator(); internal static readonly string DefaultCollectionPropertyName = ""; private string _name; private string _providedName; private string _description; private Type _type; private Object _defaultValue; private TypeConverter _converter; private ConfigurationPropertyOptions _options; private ConfigurationValidatorBase _validator; private String _addElementName = null; private String _removeElementName = null; private String _clearElementName = null; private bool _isTypeInited; private bool _isConfigurationElementType; public ConfigurationProperty(String name, Type type) { object defaultValue = null; ConstructorInit(name, type, ConfigurationPropertyOptions.None, null, null); if (type == typeof(string)) { defaultValue = String.Empty; } else if (type.IsValueType) { defaultValue = TypeUtil.CreateInstanceWithReflectionPermission(type); } SetDefaultValue(defaultValue); } public ConfigurationProperty(String name, Type type, Object defaultValue) : this(name, type, defaultValue, ConfigurationPropertyOptions.None) { } public ConfigurationProperty(String name, Type type, Object defaultValue, ConfigurationPropertyOptions options) : this(name, type, defaultValue, null, null, options) { } public ConfigurationProperty(String name, Type type, Object defaultValue, TypeConverter typeConverter, ConfigurationValidatorBase validator, ConfigurationPropertyOptions options) : this(name, type, defaultValue, typeConverter, validator, options, null) { } public ConfigurationProperty(String name, Type type, Object defaultValue, TypeConverter typeConverter, ConfigurationValidatorBase validator, ConfigurationPropertyOptions options, string description) { ConstructorInit(name, type, options, validator, typeConverter); SetDefaultValue(defaultValue); } internal ConfigurationProperty(PropertyInfo info) { Debug.Assert(info != null, "info != null"); // Bellow are the attributes we handle TypeConverterAttribute attribConverter = null; ConfigurationPropertyAttribute attribProperty = null; ConfigurationValidatorAttribute attribValidator = null; // Compatability attributes // If the approprite data is provided in the ConfigPropAttribute then the one bellow will be ignored DescriptionAttribute attribStdDescription = null; DefaultValueAttribute attribStdDefault = null; TypeConverter typeConverter = null; ConfigurationValidatorBase validator = null; // Find the interesting attributes in the collection foreach (Attribute attribute in Attribute.GetCustomAttributes(info)) { if (attribute is TypeConverterAttribute) { attribConverter = (TypeConverterAttribute)attribute; typeConverter = (TypeConverter)TypeUtil.CreateInstanceWithReflectionPermission(attribConverter.ConverterTypeName); } else if (attribute is ConfigurationPropertyAttribute) { attribProperty = (ConfigurationPropertyAttribute)attribute; } else if (attribute is ConfigurationValidatorAttribute) { // There could be more then one validator attribute specified on a property // Currently we consider this an error since it's too late to fix it for whidbey // but the right thing to do is to introduce new validator type ( CompositeValidator ) that is a list of validators and executes // them all if (validator != null) { throw new ConfigurationErrorsException(SR.GetString(SR.Validator_multiple_validator_attributes, info.Name)); } attribValidator = (ConfigurationValidatorAttribute)attribute; validator = attribValidator.ValidatorInstance; } else if (attribute is DescriptionAttribute) { attribStdDescription = (DescriptionAttribute)attribute; } else if (attribute is DefaultValueAttribute) { attribStdDefault = (DefaultValueAttribute)attribute; } } Type propertyType = info.PropertyType; // Collections need some customization when the collection attribute is present if (typeof(ConfigurationElementCollection).IsAssignableFrom(propertyType)) { ConfigurationCollectionAttribute attribCollection = Attribute.GetCustomAttribute(info, typeof(ConfigurationCollectionAttribute)) as ConfigurationCollectionAttribute; // If none on the property - see if there is an attribute on the collection type itself if (attribCollection == null) { attribCollection = Attribute.GetCustomAttribute(propertyType, typeof(ConfigurationCollectionAttribute)) as ConfigurationCollectionAttribute; } if (attribCollection != null) { if (attribCollection.AddItemName.IndexOf(',') == -1) { _addElementName = attribCollection.AddItemName; } _removeElementName = attribCollection.RemoveItemName; _clearElementName = attribCollection.ClearItemsName; } } // This constructor shouldnt be invoked if the reflection info is not for an actual config property Debug.Assert(attribProperty != null, "attribProperty != null"); ConstructorInit(attribProperty.Name, info.PropertyType, attribProperty.Options, validator, typeConverter); // Figure out the default value InitDefaultValueFromTypeInfo(attribProperty, attribStdDefault); // Get the description if ((attribStdDescription != null) && !string.IsNullOrEmpty(attribStdDescription.Description)) { _description = attribStdDescription.Description; } } private void ConstructorInit(string name, Type type, ConfigurationPropertyOptions options, ConfigurationValidatorBase validator, TypeConverter converter) { if (typeof(ConfigurationSection).IsAssignableFrom(type)) { throw new ConfigurationErrorsException(SR.GetString(SR.Config_properties_may_not_be_derived_from_configuration_section, name)); } _providedName = name; // save the provided name so we can check for default collection names if ((options & ConfigurationPropertyOptions.IsDefaultCollection) != 0 && String.IsNullOrEmpty(name)) { name = DefaultCollectionPropertyName; } else { ValidatePropertyName(name); } _name = name; _type = type; _options = options; _validator = validator; _converter = converter; // Use the default validator if none was supplied if (_validator == null) { _validator = DefaultValidatorInstance; } else { // Make sure the supplied validator supports the type of this property if (!_validator.CanValidate(_type)) { throw new ConfigurationErrorsException(SR.GetString(SR.Validator_does_not_support_prop_type, _name)); } } } private void ValidatePropertyName(string name) { if (string.IsNullOrEmpty(name)) { throw new ArgumentException(SR.GetString(SR.String_null_or_empty), "name"); } if (BaseConfigurationRecord.IsReservedAttributeName(name)) { throw new ArgumentException(SR.GetString(SR.Property_name_reserved, name)); } } private void SetDefaultValue(object value) { // Validate the default value if any. This should make errors from invalid defaults easier to catch if (value != null && value != ConfigurationElement.s_nullPropertyValue) { bool canAssign = _type.IsAssignableFrom(value.GetType()); if (!canAssign && this.Converter.CanConvertFrom(value.GetType())) { value = this.Converter.ConvertFrom(value); } else if (!canAssign) { throw new ConfigurationErrorsException(SR.GetString(SR.Default_value_wrong_type, _name)); } Validate(value); _defaultValue = value; } } private void InitDefaultValueFromTypeInfo(ConfigurationPropertyAttribute attribProperty, DefaultValueAttribute attribStdDefault) { object defaultValue = attribProperty.DefaultValue; // If there is no default value there - try the other attribute ( the clr standard one ) if ((defaultValue == null || defaultValue == ConfigurationElement.s_nullPropertyValue) && (attribStdDefault != null)) { defaultValue = attribStdDefault.Value; } // If there was a default value in the prop attribute - check if we need to convert it from string if ((defaultValue != null) && (defaultValue is string) && (_type != typeof(string))) { // Use the converter to parse this property default value try { defaultValue = Converter.ConvertFromInvariantString((string)defaultValue); } catch (Exception ex) { throw new ConfigurationErrorsException(SR.GetString(SR.Default_value_conversion_error_from_string, _name, ex.Message)); } } if (defaultValue == null || defaultValue == ConfigurationElement.s_nullPropertyValue) { if (_type == typeof(string)) { defaultValue = String.Empty; } else if (_type.IsValueType) { defaultValue = TypeUtil.CreateInstanceWithReflectionPermission(_type); } } SetDefaultValue(defaultValue); } public string Name { get { return _name; } } public string Description { get { return _description; } } internal string ProvidedName { get { return _providedName; } } internal bool IsConfigurationElementType { get { if (!_isTypeInited) { _isConfigurationElementType = typeof(ConfigurationElement).IsAssignableFrom(_type); _isTypeInited = true; } return _isConfigurationElementType; } } public Type Type { get { return _type; } } public Object DefaultValue { get { return _defaultValue; } } public bool IsRequired { get { return (_options & ConfigurationPropertyOptions.IsRequired) != 0; } } public bool IsKey { get { return (_options & ConfigurationPropertyOptions.IsKey) != 0; } } public bool IsDefaultCollection { get { return ((_options & ConfigurationPropertyOptions.IsDefaultCollection) != 0); } } public bool IsTypeStringTransformationRequired { get { return (_options & ConfigurationPropertyOptions.IsTypeStringTransformationRequired) != 0; } } public bool IsAssemblyStringTransformationRequired { get { return (_options & ConfigurationPropertyOptions.IsAssemblyStringTransformationRequired) != 0; } } public bool IsVersionCheckRequired { get { return (_options & ConfigurationPropertyOptions.IsVersionCheckRequired) != 0; } } public TypeConverter Converter { get { CreateConverter(); return _converter; } } public ConfigurationValidatorBase Validator { get { return _validator; } } internal String AddElementName { get { return _addElementName; } } internal String RemoveElementName { get { return _removeElementName; } } internal String ClearElementName { get { return _clearElementName; } } internal Object ConvertFromString(string value) { object result = null; try { result = Converter.ConvertFromInvariantString(value); } catch (Exception ex) { throw new ConfigurationErrorsException(SR.GetString(SR.Top_level_conversion_error_from_string, _name, ex.Message)); } return result; } internal string ConvertToString(Object value) { string result = null; try { if (_type == typeof(bool)) { result = ((bool)value) ? "true" : "false"; // the converter will break 1.1 compat for bool } else { result = Converter.ConvertToInvariantString(value); } } catch (Exception ex) { throw new ConfigurationErrorsException(SR.GetString(SR.Top_level_conversion_error_to_string, _name, ex.Message)); } return result; } internal void Validate(object value) { try { _validator.Validate(value); } catch (Exception ex) { throw new ConfigurationErrorsException(SR.GetString(SR.Top_level_validation_error, _name, ex.Message),ex); } } private void CreateConverter() { // Some properties cannot have type converters. // Such examples are properties that are ConfigurationElement ( derived classes ) // or properties which are user-defined and the user code handles serialization/desirialization so // the property itself is never converted to/from string if (_converter == null) { // Enums are exception. We use our custom converter for all enums if (_type.IsEnum) { _converter = new GenericEnumConverter(_type); } else if (!_type.IsSubclassOf(typeof(ConfigurationElement))) { _converter = TypeDescriptor.GetConverter(_type); if ((_converter == null) || !_converter.CanConvertFrom(typeof(String)) || !_converter.CanConvertTo(typeof(String))) { throw new ConfigurationErrorsException(SR.GetString(SR.No_converter, _name, _type.Name)); } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MethodInfo.cs
- GenericIdentity.cs
- ButtonChrome.cs
- AssemblyAttributes.cs
- RegexWriter.cs
- ConsumerConnectionPointCollection.cs
- PeerHelpers.cs
- EventProperty.cs
- APCustomTypeDescriptor.cs
- TransactionBridgeSection.cs
- SingleSelectRootGridEntry.cs
- DSASignatureFormatter.cs
- SqlConnectionString.cs
- xmlsaver.cs
- PixelShader.cs
- XPathNodeHelper.cs
- FixedSOMTableRow.cs
- CompositeControl.cs
- GridViewSelectEventArgs.cs
- _OverlappedAsyncResult.cs
- EntityDataSourceValidationException.cs
- RenderOptions.cs
- RetrieveVirtualItemEventArgs.cs
- CryptoApi.cs
- LabelDesigner.cs
- CommentGlyph.cs
- Binding.cs
- LambdaCompiler.Logical.cs
- objectquery_tresulttype.cs
- ColumnMapCopier.cs
- Decorator.cs
- TabControl.cs
- PTUtility.cs
- CellParaClient.cs
- BindingContext.cs
- ValueOfAction.cs
- ReadOnlyDataSourceView.cs
- DragDrop.cs
- BamlResourceDeserializer.cs
- PixelFormats.cs
- xmlformatgeneratorstatics.cs
- CommandHelper.cs
- odbcmetadatafactory.cs
- DeviceSpecific.cs
- SingleAnimationBase.cs
- ChtmlTextWriter.cs
- FacetDescriptionElement.cs
- AssemblyBuilderData.cs
- InstanceCreationEditor.cs
- Interop.cs
- KeySpline.cs
- XmlSchemaDocumentation.cs
- ParserContext.cs
- NumberAction.cs
- ThaiBuddhistCalendar.cs
- ExpressionVisitor.cs
- SettingsPropertyNotFoundException.cs
- xsdvalidator.cs
- RelationshipEndCollection.cs
- SemaphoreFullException.cs
- XmlSchemaSubstitutionGroup.cs
- IsolatedStorage.cs
- ThemeInfoAttribute.cs
- XmlDictionaryReader.cs
- MaterialGroup.cs
- DoubleLinkListEnumerator.cs
- CheckedPointers.cs
- CodeRemoveEventStatement.cs
- SelectionEditor.cs
- DocumentReferenceCollection.cs
- TcpChannelListener.cs
- pingexception.cs
- QilPatternFactory.cs
- DtdParser.cs
- BulletedListDesigner.cs
- URL.cs
- RegexStringValidator.cs
- ToolStripControlHost.cs
- SqlConnectionString.cs
- AssociationSetEnd.cs
- DataMemberFieldConverter.cs
- SocketSettings.cs
- DataSource.cs
- TagPrefixCollection.cs
- JsonUriDataContract.cs
- FormatConvertedBitmap.cs
- CompilationRelaxations.cs
- PathSegmentCollection.cs
- WebPartConnectionsEventArgs.cs
- EntityDataSourceStatementEditor.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- ConfigurationErrorsException.cs
- MemberRelationshipService.cs
- Behavior.cs
- DbUpdateCommandTree.cs
- ProvidePropertyAttribute.cs
- PageMediaType.cs
- SafeLocalMemHandle.cs
- ListBoxChrome.cs
- TimelineGroup.cs