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
- AgileSafeNativeMemoryHandle.cs
- WindowsFormsHelpers.cs
- PrivilegedConfigurationManager.cs
- WebBrowserContainer.cs
- RelationshipManager.cs
- StickyNoteHelper.cs
- FlowDocumentPageViewerAutomationPeer.cs
- SiteMapPath.cs
- OptimalTextSource.cs
- EventData.cs
- ToolStripContentPanel.cs
- DataGridViewRow.cs
- RawMouseInputReport.cs
- ErrorFormatter.cs
- ApplicationManager.cs
- TimeStampChecker.cs
- RowType.cs
- SoapUnknownHeader.cs
- PasswordPropertyTextAttribute.cs
- MultiPropertyDescriptorGridEntry.cs
- InputDevice.cs
- ResourceWriter.cs
- RequestBringIntoViewEventArgs.cs
- MatchingStyle.cs
- RoleBoolean.cs
- PartitionResolver.cs
- FileSystemInfo.cs
- BmpBitmapEncoder.cs
- CapabilitiesSection.cs
- WebPartConnectionsEventArgs.cs
- XPathSelfQuery.cs
- ConditionChanges.cs
- WindowsSecurityTokenAuthenticator.cs
- Calendar.cs
- NavigatorOutput.cs
- Soap.cs
- ObjectAnimationBase.cs
- WorkflowTransactionOptions.cs
- TextTreeUndoUnit.cs
- NavigationPropertyEmitter.cs
- ExpandCollapsePattern.cs
- HttpListenerRequestUriBuilder.cs
- ContextStack.cs
- DataColumnChangeEvent.cs
- BlurEffect.cs
- DispatcherHooks.cs
- altserialization.cs
- AutomationAttributeInfo.cs
- counter.cs
- NavigatorOutput.cs
- PolyBezierSegmentFigureLogic.cs
- Helpers.cs
- SelectionGlyphBase.cs
- CharAnimationBase.cs
- UrlPropertyAttribute.cs
- HttpCachePolicy.cs
- ContainsSearchOperator.cs
- TraceListener.cs
- ProtocolReflector.cs
- XhtmlBasicObjectListAdapter.cs
- Type.cs
- StreamUpdate.cs
- IBuiltInEvidence.cs
- ParameterCollection.cs
- ZipIOExtraFieldElement.cs
- LogSwitch.cs
- SourceElementsCollection.cs
- TypeBuilderInstantiation.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- XmlHelper.cs
- WebPartsPersonalization.cs
- ElementFactory.cs
- XmlSchemaRedefine.cs
- ToolStripLocationCancelEventArgs.cs
- rsa.cs
- InvalidFilterCriteriaException.cs
- TransformGroup.cs
- CompiledIdentityConstraint.cs
- XPathChildIterator.cs
- InheritanceContextChangedEventManager.cs
- InProcStateClientManager.cs
- KeysConverter.cs
- FilterRepeater.cs
- ColorConvertedBitmap.cs
- XmlnsPrefixAttribute.cs
- SemanticAnalyzer.cs
- UnsafeNativeMethods.cs
- XmlQuerySequence.cs
- TextCompositionManager.cs
- CalendarDay.cs
- VersionUtil.cs
- CellRelation.cs
- WindowsIPAddress.cs
- DataPagerCommandEventArgs.cs
- SpinLock.cs
- WebSysDescriptionAttribute.cs
- HoistedLocals.cs
- BookmarkUndoUnit.cs
- RuleSettingsCollection.cs
- ProgressBar.cs