Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Configuration / System / Configuration / ConfigurationProperty.cs / 1 / 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; 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)); } catch { throw new ConfigurationErrorsException(SR.GetString(SR.Default_value_conversion_error_from_string, _name, ExceptionUtil.NoExceptionInformation)); } } 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; } } 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 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)); } catch { throw new ConfigurationErrorsException(SR.GetString(SR.Top_level_conversion_error_from_string, _name, ExceptionUtil.NoExceptionInformation)); } 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)); } catch { throw new ConfigurationErrorsException(SR.GetString(SR.Top_level_conversion_error_to_string, _name, ExceptionUtil.NoExceptionInformation)); } 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); } catch { throw new ConfigurationErrorsException(SR.GetString(SR.Top_level_validation_error, _name, ExceptionUtil.NoExceptionInformation)); } } 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; 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)); } catch { throw new ConfigurationErrorsException(SR.GetString(SR.Default_value_conversion_error_from_string, _name, ExceptionUtil.NoExceptionInformation)); } } 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; } } 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 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)); } catch { throw new ConfigurationErrorsException(SR.GetString(SR.Top_level_conversion_error_from_string, _name, ExceptionUtil.NoExceptionInformation)); } 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)); } catch { throw new ConfigurationErrorsException(SR.GetString(SR.Top_level_conversion_error_to_string, _name, ExceptionUtil.NoExceptionInformation)); } 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); } catch { throw new ConfigurationErrorsException(SR.GetString(SR.Top_level_validation_error, _name, ExceptionUtil.NoExceptionInformation)); } } 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
- DataGridViewBindingCompleteEventArgs.cs
- Emitter.cs
- MetadataResolver.cs
- Drawing.cs
- Win32.cs
- TableHeaderCell.cs
- NeedSkipTokenVisitor.cs
- UpdateCompiler.cs
- XmlConvert.cs
- WebPartConnectionsCancelVerb.cs
- CodeNamespaceCollection.cs
- ClientApiGenerator.cs
- OleDbDataReader.cs
- DataGridViewCellStyleChangedEventArgs.cs
- SizeF.cs
- WorkflowItemsPresenter.cs
- CanonicalXml.cs
- HierarchicalDataSourceControl.cs
- WinCategoryAttribute.cs
- GetCertificateRequest.cs
- LineBreakRecord.cs
- QilTargetType.cs
- X509CertificateCollection.cs
- TraceData.cs
- PersistChildrenAttribute.cs
- FactoryId.cs
- WebBrowserNavigatingEventHandler.cs
- SignalGate.cs
- KernelTypeValidation.cs
- CounterSet.cs
- XDRSchema.cs
- DataGridCaption.cs
- ConfigXmlElement.cs
- UdpSocketReceiveManager.cs
- HtmlInputReset.cs
- ImportContext.cs
- AdapterUtil.cs
- XmlObjectSerializerWriteContextComplex.cs
- AvtEvent.cs
- ProfileModule.cs
- recordstatefactory.cs
- RuntimeHelpers.cs
- SHA256Cng.cs
- BatchParser.cs
- LineBreakRecord.cs
- Help.cs
- MenuItemAutomationPeer.cs
- CalendarDesigner.cs
- XmlAnyElementAttribute.cs
- MediaElement.cs
- ToolboxDataAttribute.cs
- ColorContext.cs
- SchemaNamespaceManager.cs
- ProfessionalColorTable.cs
- Formatter.cs
- TransformerInfo.cs
- OleAutBinder.cs
- InputReport.cs
- StringFunctions.cs
- Attributes.cs
- TemplateControl.cs
- IApplicationTrustManager.cs
- ListBindingConverter.cs
- WebPartVerbsEventArgs.cs
- PropertyNames.cs
- HttpProcessUtility.cs
- EmptyReadOnlyDictionaryInternal.cs
- altserialization.cs
- InvalidProgramException.cs
- UdpDuplexChannel.cs
- TemplateBuilder.cs
- CultureTableRecord.cs
- SqlPersonalizationProvider.cs
- ClientFormsAuthenticationCredentials.cs
- GridLengthConverter.cs
- SerialReceived.cs
- StylusPointPropertyInfoDefaults.cs
- WinOEToolBoxItem.cs
- CustomLineCap.cs
- TdsParameterSetter.cs
- ScriptControl.cs
- MessageHeaderInfoTraceRecord.cs
- httpserverutility.cs
- baseshape.cs
- SqlTypeConverter.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- _NtlmClient.cs
- DirtyTextRange.cs
- ZipFileInfo.cs
- DispatcherExceptionFilterEventArgs.cs
- Utility.cs
- UnsafeNativeMethods.cs
- RefreshPropertiesAttribute.cs
- DataControlPagerLinkButton.cs
- OleStrCAMarshaler.cs
- FormatterServices.cs
- Documentation.cs
- MethodBuilder.cs
- HelpKeywordAttribute.cs
- ListViewDeleteEventArgs.cs