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
- Point3DConverter.cs
- XmlEntity.cs
- DecoderFallback.cs
- ObjectSelectorEditor.cs
- ChannelParameterCollection.cs
- ImpersonateTokenRef.cs
- CallbackHandler.cs
- RectangleHotSpot.cs
- CharKeyFrameCollection.cs
- CryptoApi.cs
- SymbolPair.cs
- ListBoxItemWrapperAutomationPeer.cs
- RegistryPermission.cs
- VectorConverter.cs
- PopOutPanel.cs
- TypedReference.cs
- LinqToSqlWrapper.cs
- ProxyAttribute.cs
- MessageBodyMemberAttribute.cs
- ClassValidator.cs
- NameNode.cs
- OleDbMetaDataFactory.cs
- ProcessHost.cs
- DependentList.cs
- ProgressBar.cs
- Match.cs
- ElementFactory.cs
- ObjectViewListener.cs
- Visitor.cs
- MatrixAnimationUsingPath.cs
- CodeAttributeArgument.cs
- CodeIdentifiers.cs
- XdrBuilder.cs
- TiffBitmapEncoder.cs
- SqlMultiplexer.cs
- TdsParserStateObject.cs
- KeyInterop.cs
- NavigationEventArgs.cs
- EmitterCache.cs
- Win32Exception.cs
- DeferredTextReference.cs
- ProviderConnectionPoint.cs
- BuildManagerHost.cs
- FigureParagraph.cs
- ListDictionaryInternal.cs
- LogLogRecordHeader.cs
- RoleExceptions.cs
- ToolStripItemDataObject.cs
- Listbox.cs
- ResourceDefaultValueAttribute.cs
- BindingNavigator.cs
- processwaithandle.cs
- ProxyWebPartManager.cs
- SynchronousChannelMergeEnumerator.cs
- SafeNativeMethods.cs
- PropertyChangedEventArgs.cs
- HttpCacheVary.cs
- DocumentApplicationJournalEntry.cs
- ActivityMarkupSerializer.cs
- invalidudtexception.cs
- X509CertificateCollection.cs
- TabItemWrapperAutomationPeer.cs
- Page.cs
- WebPartConnectionsEventArgs.cs
- ZoneIdentityPermission.cs
- SafeRegistryKey.cs
- PermissionSetTriple.cs
- ConstrainedGroup.cs
- XmlSchemaAttributeGroupRef.cs
- RequestQueue.cs
- RootContext.cs
- Int32RectValueSerializer.cs
- ScopedKnownTypes.cs
- MailWebEventProvider.cs
- SoapSchemaMember.cs
- CategoryValueConverter.cs
- VarRefManager.cs
- ToolStripItemImageRenderEventArgs.cs
- Storyboard.cs
- ListViewSelectEventArgs.cs
- DataObjectFieldAttribute.cs
- DefaultCommandConverter.cs
- NetCodeGroup.cs
- URL.cs
- GeometryDrawing.cs
- EntityParameter.cs
- XmlException.cs
- Rect.cs
- AsyncOperationManager.cs
- ipaddressinformationcollection.cs
- SqlFunctions.cs
- QueryStringParameter.cs
- IndexedWhereQueryOperator.cs
- DragEvent.cs
- WebConfigurationFileMap.cs
- WebServiceHandler.cs
- VariantWrapper.cs
- ExpressionBuilder.cs
- RIPEMD160Managed.cs
- BuildResultCache.cs