Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Configuration / System / Configuration / GenericEnumConverter.cs / 1 / GenericEnumConverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.IO; using System.Reflection; using System.Security.Permissions; using System.Xml; using System.Collections.Specialized; using System.Globalization; using System.ComponentModel; using System.Security; using System.Text; namespace System.Configuration { public sealed class GenericEnumConverter : ConfigurationConverterBase { private Type _enumType; public GenericEnumConverter(Type typeEnum) { if (typeEnum == null) { throw new ArgumentNullException("typeEnum"); } _enumType = typeEnum; } public override object ConvertTo(ITypeDescriptorContext ctx, CultureInfo ci, object value, Type type) { Debug.Assert(typeof(System.Enum).IsAssignableFrom(value.GetType()), "typeof(System.Enum).IsAssignableFrom(value.GetType())"); return value.ToString(); } public override object ConvertFrom(ITypeDescriptorContext ctx, CultureInfo ci, object data) { object result = null; // // For any error, throw the ArgumentException with SR.Invalid_enum_value // try { string value = (string)data; if (String.IsNullOrEmpty(value)) { throw new Exception(); } // Disallow numeric values for enums. if (!String.IsNullOrEmpty(value) && (Char.IsDigit(value[0]) || (value[0] == '-') || (value[0] == '+'))) { throw new Exception(); } if (value != value.Trim()) { // throw if the value has whitespace throw new Exception(); } result = Enum.Parse(_enumType, value); } catch { StringBuilder names = new StringBuilder(); foreach (string name in Enum.GetNames(_enumType)) { if (names.Length != 0) { names.Append(", "); } names.Append(name); } throw new ArgumentException(SR.GetString(SR.Invalid_enum_value, names.ToString())); } return result; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.IO; using System.Reflection; using System.Security.Permissions; using System.Xml; using System.Collections.Specialized; using System.Globalization; using System.ComponentModel; using System.Security; using System.Text; namespace System.Configuration { public sealed class GenericEnumConverter : ConfigurationConverterBase { private Type _enumType; public GenericEnumConverter(Type typeEnum) { if (typeEnum == null) { throw new ArgumentNullException("typeEnum"); } _enumType = typeEnum; } public override object ConvertTo(ITypeDescriptorContext ctx, CultureInfo ci, object value, Type type) { Debug.Assert(typeof(System.Enum).IsAssignableFrom(value.GetType()), "typeof(System.Enum).IsAssignableFrom(value.GetType())"); return value.ToString(); } public override object ConvertFrom(ITypeDescriptorContext ctx, CultureInfo ci, object data) { object result = null; // // For any error, throw the ArgumentException with SR.Invalid_enum_value // try { string value = (string)data; if (String.IsNullOrEmpty(value)) { throw new Exception(); } // Disallow numeric values for enums. if (!String.IsNullOrEmpty(value) && (Char.IsDigit(value[0]) || (value[0] == '-') || (value[0] == '+'))) { throw new Exception(); } if (value != value.Trim()) { // throw if the value has whitespace throw new Exception(); } result = Enum.Parse(_enumType, value); } catch { StringBuilder names = new StringBuilder(); foreach (string name in Enum.GetNames(_enumType)) { if (names.Length != 0) { names.Append(", "); } names.Append(name); } throw new ArgumentException(SR.GetString(SR.Invalid_enum_value, names.ToString())); } return result; } } } // 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
- XmlTextEncoder.cs
- TimersDescriptionAttribute.cs
- WebPartTransformerAttribute.cs
- AppPool.cs
- URLAttribute.cs
- TypedReference.cs
- WSSecurityPolicy12.cs
- UnsafeNativeMethods.cs
- DataGridPageChangedEventArgs.cs
- ObjectToIdCache.cs
- FormParameter.cs
- CommonRemoteMemoryBlock.cs
- HeaderUtility.cs
- DesignerMetadata.cs
- CheckBoxBaseAdapter.cs
- DataObjectSettingDataEventArgs.cs
- BinaryUtilClasses.cs
- EdmToObjectNamespaceMap.cs
- CodeCommentStatement.cs
- DbParameterCollectionHelper.cs
- SymbolEqualComparer.cs
- StylusSystemGestureEventArgs.cs
- ManagementObject.cs
- TemplateLookupAction.cs
- RegexGroupCollection.cs
- GridViewColumnCollection.cs
- QuerySettings.cs
- Function.cs
- SymLanguageType.cs
- ToolStripDropDownDesigner.cs
- XmlSchema.cs
- RelatedView.cs
- EventSetter.cs
- EdmProviderManifest.cs
- PointLight.cs
- DataPagerCommandEventArgs.cs
- Preprocessor.cs
- HtmlContainerControl.cs
- ServiceOperationUIEditor.cs
- TimeoutStream.cs
- CorrelationTokenTypeConvertor.cs
- DataGridViewElement.cs
- CheckPair.cs
- IconHelper.cs
- Rijndael.cs
- AutoGeneratedFieldProperties.cs
- IdnMapping.cs
- Selection.cs
- DataObjectFieldAttribute.cs
- DrawingGroup.cs
- WmlObjectListAdapter.cs
- CaseInsensitiveHashCodeProvider.cs
- DataTableMapping.cs
- Geometry.cs
- ConsumerConnectionPointCollection.cs
- AsyncContentLoadedEventArgs.cs
- MbpInfo.cs
- PersianCalendar.cs
- XmlSchemaDatatype.cs
- XmlHierarchicalDataSourceView.cs
- _FixedSizeReader.cs
- OracleDataReader.cs
- ExpressionBuilder.cs
- ClipboardProcessor.cs
- DataControlButton.cs
- RemoveStoryboard.cs
- CategoryGridEntry.cs
- CqlWriter.cs
- DomNameTable.cs
- objectquery_tresulttype.cs
- ScrollData.cs
- ICspAsymmetricAlgorithm.cs
- TemplateApplicationHelper.cs
- SapiInterop.cs
- Typeface.cs
- XmlSchemaSimpleTypeList.cs
- DuplicateWaitObjectException.cs
- WebBrowser.cs
- WFItemsToSpacerVisibility.cs
- ListenerElementsCollection.cs
- ProtocolsSection.cs
- DetailsViewUpdatedEventArgs.cs
- CollectionViewGroupRoot.cs
- Animatable.cs
- WindowHideOrCloseTracker.cs
- HttpsTransportBindingElement.cs
- KeyedHashAlgorithm.cs
- RoutedUICommand.cs
- webbrowsersite.cs
- Typography.cs
- MetadataStore.cs
- XmlUrlEditor.cs
- StreamResourceInfo.cs
- HtmlInputHidden.cs
- _NestedMultipleAsyncResult.cs
- SimpleWebHandlerParser.cs
- ObjectListShowCommandsEventArgs.cs
- CredentialCache.cs
- SecurityStandardsManager.cs
- Duration.cs