Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / 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); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ //// 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); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlDataSourceSummaryPanel.cs
- SqlSelectStatement.cs
- DataSourceCacheDurationConverter.cs
- DataSysAttribute.cs
- SHA384Managed.cs
- TextControlDesigner.cs
- HostExecutionContextManager.cs
- TimersDescriptionAttribute.cs
- DateTimeStorage.cs
- SendingRequestEventArgs.cs
- LocationReference.cs
- SequentialWorkflowHeaderFooter.cs
- ScriptingRoleServiceSection.cs
- SignatureTargetIdManager.cs
- Vector.cs
- MorphHelpers.cs
- SelectionEditor.cs
- RoutedEventValueSerializer.cs
- MetafileHeader.cs
- StaticExtension.cs
- BaseTemplateBuildProvider.cs
- InsufficientMemoryException.cs
- ScopedMessagePartSpecification.cs
- DataContractJsonSerializer.cs
- SkinBuilder.cs
- SingleSelectRootGridEntry.cs
- Application.cs
- PersonalizationProviderCollection.cs
- ListItemCollection.cs
- RegistryKey.cs
- PointAnimation.cs
- Int64AnimationBase.cs
- HandoffBehavior.cs
- MarshalByValueComponent.cs
- FixedSOMFixedBlock.cs
- Image.cs
- MethodCallConverter.cs
- StaticSiteMapProvider.cs
- KeyProperty.cs
- ObjectListDataBindEventArgs.cs
- DoubleLinkListEnumerator.cs
- SystemNetHelpers.cs
- UnsafeNativeMethods.cs
- ToolStripManager.cs
- FeatureSupport.cs
- DataSetSchema.cs
- IdentitySection.cs
- TcpSocketManager.cs
- Ipv6Element.cs
- InvalidEnumArgumentException.cs
- NumericUpDownAcceleration.cs
- SmtpReplyReader.cs
- AspProxy.cs
- LogLogRecordEnumerator.cs
- HyperLinkColumn.cs
- TokenBasedSetEnumerator.cs
- ContainerAction.cs
- SafeNativeMethods.cs
- PopOutPanel.cs
- MemberInitExpression.cs
- RuleConditionDialog.cs
- BufferedGraphics.cs
- Help.cs
- BuildProvider.cs
- WizardPanelChangingEventArgs.cs
- TextEditorSelection.cs
- RegisteredExpandoAttribute.cs
- _ProxyChain.cs
- MobileErrorInfo.cs
- Switch.cs
- ImpersonateTokenRef.cs
- CompletionProxy.cs
- References.cs
- FormDesigner.cs
- Assert.cs
- QueryFunctions.cs
- WebPartVerb.cs
- SqlTrackingQuery.cs
- NavigatorOutput.cs
- PbrsForward.cs
- XmlRootAttribute.cs
- SettingsPropertyIsReadOnlyException.cs
- Handle.cs
- AdornerHitTestResult.cs
- IdleTimeoutMonitor.cs
- RedirectionProxy.cs
- FileStream.cs
- ColumnResizeAdorner.cs
- GeometryGroup.cs
- CompositeFontFamily.cs
- FormViewInsertEventArgs.cs
- CommandPlan.cs
- ColumnBinding.cs
- DecoderNLS.cs
- mactripleDES.cs
- AbstractSvcMapFileLoader.cs
- ControlFilterExpression.cs
- MobileCapabilities.cs
- ManifestResourceInfo.cs
- SizeAnimationUsingKeyFrames.cs