Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Configuration / System / Configuration / GenericEnumConverter.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TracePayload.cs
- Dispatcher.cs
- WrappedReader.cs
- DefaultPrintController.cs
- TimeSpanStorage.cs
- OracleConnectionStringBuilder.cs
- TextParagraph.cs
- EncoderBestFitFallback.cs
- MessageQueueInstaller.cs
- SerializerWriterEventHandlers.cs
- PenThread.cs
- DateTimeFormatInfo.cs
- Rotation3DAnimationUsingKeyFrames.cs
- UnsafeNativeMethods.cs
- StorageScalarPropertyMapping.cs
- AnimationTimeline.cs
- QilTernary.cs
- ListViewItem.cs
- DiscoveryEndpointElement.cs
- SimpleHandlerBuildProvider.cs
- HwndSourceParameters.cs
- ValueConversionAttribute.cs
- MatrixTransform3D.cs
- NumberSubstitution.cs
- ColorConvertedBitmap.cs
- EntityConnectionStringBuilder.cs
- GridSplitterAutomationPeer.cs
- FileLoadException.cs
- WorkflowServiceAttributesTypeConverter.cs
- _UriTypeConverter.cs
- EdmProperty.cs
- OrderedDictionary.cs
- TrustSection.cs
- TextRangeAdaptor.cs
- UserControlParser.cs
- ToolBarButton.cs
- WriteTimeStream.cs
- CredentialCache.cs
- DockingAttribute.cs
- ToolboxItem.cs
- TransactionChannelListener.cs
- BitConverter.cs
- ComPlusDiagnosticTraceRecords.cs
- WpfGeneratedKnownProperties.cs
- SqlDataSourceQueryEditor.cs
- BitmapEffectGroup.cs
- QuaternionConverter.cs
- HttpCachePolicyElement.cs
- UnionCodeGroup.cs
- OleDbRowUpdatingEvent.cs
- DetailsViewUpdatedEventArgs.cs
- HMAC.cs
- oledbmetadatacollectionnames.cs
- DataViewManager.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- CriticalFinalizerObject.cs
- Manipulation.cs
- XmlBaseReader.cs
- RightsManagementEncryptionTransform.cs
- ForceCopyBuildProvider.cs
- SafeMarshalContext.cs
- QilXmlWriter.cs
- FixedSOMTableCell.cs
- SubMenuStyleCollection.cs
- BaseValidatorDesigner.cs
- QueueProcessor.cs
- QilInvokeLateBound.cs
- ConfigPathUtility.cs
- NonParentingControl.cs
- DataGridColumnHeaderAutomationPeer.cs
- ArraySegment.cs
- PeerDefaultCustomResolverClient.cs
- DocumentSequenceHighlightLayer.cs
- SingleResultAttribute.cs
- DataGridParentRows.cs
- NumberFormatInfo.cs
- CacheModeConverter.cs
- ResourceDisplayNameAttribute.cs
- SynchronizedDispatch.cs
- TextFindEngine.cs
- SqlStatistics.cs
- SymmetricKeyWrap.cs
- SuppressIldasmAttribute.cs
- DiscardableAttribute.cs
- NetworkCredential.cs
- DrawingDrawingContext.cs
- Soap12ProtocolReflector.cs
- XmlHierarchicalEnumerable.cs
- UrlUtility.cs
- UserControlAutomationPeer.cs
- TableItemPattern.cs
- ContractSearchPattern.cs
- CodeArrayCreateExpression.cs
- ConfigurationCollectionAttribute.cs
- ColorAnimation.cs
- BindingGraph.cs
- TouchPoint.cs
- CapabilitiesSection.cs
- ConfigurationStrings.cs
- sqlser.cs