Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebControls / unitconverter.cs / 1 / unitconverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Globalization; using System.Reflection; using System.Security.Permissions; using System.Web.Util; [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class UnitConverter : TypeConverter { ////// /// Returns a value indicating whether the unit converter can /// convert from the specified source type. /// public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { if (sourceType == typeof(string)) { return true; } else { return base.CanConvertFrom(context, sourceType); } } ////// /// Returns a value indicating whether the converter can /// convert to the specified destination type. /// public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { if ((destinationType == typeof(string)) || (destinationType == typeof(InstanceDescriptor))) { return true; } else { return base.CanConvertTo(context, destinationType); } } ////// /// Performs type conversion from the given value into a Unit. /// public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value == null) return null; string stringValue = value as string; if (stringValue != null) { string textValue = stringValue.Trim(); if (textValue.Length == 0) { return Unit.Empty; } if (culture != null) { return Unit.Parse(textValue, culture); } else { return Unit.Parse(textValue, CultureInfo.CurrentCulture); } } else { return base.ConvertFrom(context, culture, value); } } ////// /// Performs type conversion to the specified destination type /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { if ((value == null) || ((Unit)value).IsEmpty) return String.Empty; else return ((Unit)value).ToString(culture); } else if ((destinationType == typeof(InstanceDescriptor)) && (value != null)) { Unit u = (Unit)value; MemberInfo member = null; object[] args = null; if (u.IsEmpty) { member = typeof(Unit).GetField("Empty"); } else { member = typeof(Unit).GetConstructor(new Type[] { typeof(double), typeof(UnitType) }); args = new object[] { u.Value, u.Type }; } Debug.Assert(member != null, "Looks like we're missing Unit.Empty or Unit::ctor(double, UnitType)"); if (member != null) { return new InstanceDescriptor(member, args); } else { return null; } } else { return base.ConvertTo(context, culture, value, destinationType); } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CompModHelpers.cs
- XmlAttributes.cs
- ExpressionConverter.cs
- PrintController.cs
- ObjectAnimationUsingKeyFrames.cs
- TextTreeText.cs
- PriorityItem.cs
- MediaTimeline.cs
- EditorBrowsableAttribute.cs
- WindowPattern.cs
- UriTemplateCompoundPathSegment.cs
- TagPrefixCollection.cs
- CodePropertyReferenceExpression.cs
- MethodAccessException.cs
- MobileCategoryAttribute.cs
- FileUtil.cs
- VerticalConnector.xaml.cs
- AssemblyBuilder.cs
- SecurityDocument.cs
- PostBackOptions.cs
- GeneratedContractType.cs
- ConnectionsZone.cs
- ListBoxItemWrapperAutomationPeer.cs
- unsafenativemethodstextservices.cs
- PersonalizationState.cs
- ToolStripActionList.cs
- TabPage.cs
- Rect3D.cs
- XamlClipboardData.cs
- NamespaceCollection.cs
- _OverlappedAsyncResult.cs
- WindowsFont.cs
- GrammarBuilderPhrase.cs
- ToolStripControlHost.cs
- Parser.cs
- RenderOptions.cs
- WindowsPen.cs
- EntityCommandCompilationException.cs
- storepermissionattribute.cs
- HtmlInputFile.cs
- MetadataCache.cs
- FieldCollectionEditor.cs
- NameValueConfigurationCollection.cs
- Control.cs
- RangeExpression.cs
- StatusBar.cs
- WCFBuildProvider.cs
- ProxyWebPartManager.cs
- COM2IProvidePropertyBuilderHandler.cs
- CreateUserWizardStep.cs
- _LocalDataStoreMgr.cs
- ParameterDataSourceExpression.cs
- DesignOnlyAttribute.cs
- AspNetSynchronizationContext.cs
- MessageBox.cs
- ConnectionPoolManager.cs
- SerializationException.cs
- CngProvider.cs
- QuaternionRotation3D.cs
- ClientEventManager.cs
- Random.cs
- XsltQilFactory.cs
- XmlMapping.cs
- DbConnectionInternal.cs
- TdsParserHelperClasses.cs
- GlobalDataBindingHandler.cs
- EnumConverter.cs
- ObjectViewQueryResultData.cs
- newinstructionaction.cs
- SizeFConverter.cs
- DisplayInformation.cs
- SqlConnectionFactory.cs
- ExpandCollapseProviderWrapper.cs
- TransformPatternIdentifiers.cs
- SelectionItemPattern.cs
- GradientStop.cs
- xmlfixedPageInfo.cs
- CopyOnWriteList.cs
- Number.cs
- PathGeometry.cs
- MachineKeySection.cs
- ListViewDataItem.cs
- XmlNavigatorFilter.cs
- FixedSOMPageElement.cs
- Attachment.cs
- DataGridViewTopRowAccessibleObject.cs
- HtmlGenericControl.cs
- WinFormsComponentEditor.cs
- SelectedGridItemChangedEvent.cs
- TransactionChannelFactory.cs
- ImageMetadata.cs
- ImmutableCommunicationTimeouts.cs
- InstanceDataCollectionCollection.cs
- MinMaxParagraphWidth.cs
- CodeDOMUtility.cs
- DocumentsTrace.cs
- InvalidDocumentContentsException.cs
- ByteAnimation.cs
- RawStylusSystemGestureInputReport.cs
- safemediahandle.cs