Code:
/ FX-1434 / FX-1434 / 1.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
- ConfigPathUtility.cs
- DependencyObjectValidator.cs
- ProjectionPlanCompiler.cs
- XmlAnyAttributeAttribute.cs
- TableRow.cs
- HostTimeoutsElement.cs
- WebControl.cs
- DataBinding.cs
- ValidationHelper.cs
- HWStack.cs
- SymmetricAlgorithm.cs
- ToolConsole.cs
- __Filters.cs
- DataGridToolTip.cs
- ComponentEditorForm.cs
- ClientSideQueueItem.cs
- BaseUriHelper.cs
- UserControlBuildProvider.cs
- OuterGlowBitmapEffect.cs
- XPathMessageFilterTable.cs
- ClientUrlResolverWrapper.cs
- ClrPerspective.cs
- GraphicsPathIterator.cs
- SelectionRangeConverter.cs
- InternalTypeHelper.cs
- EncryptedType.cs
- IOThreadScheduler.cs
- DomNameTable.cs
- HuffmanTree.cs
- LogEntryHeaderSerializer.cs
- MetabaseSettingsIis7.cs
- ClaimTypeRequirement.cs
- NoResizeHandleGlyph.cs
- CommonProperties.cs
- InvalidateEvent.cs
- StructuredType.cs
- NotifyIcon.cs
- BitmapFrame.cs
- TraceHwndHost.cs
- BamlStream.cs
- WebConfigurationManager.cs
- PkcsUtils.cs
- MLangCodePageEncoding.cs
- FragmentQuery.cs
- PasswordBox.cs
- SiteMapSection.cs
- StylusPlugin.cs
- AppDomainManager.cs
- FileUpload.cs
- FilterQueryOptionExpression.cs
- MembershipSection.cs
- PropagatorResult.cs
- SignedXml.cs
- MetaData.cs
- AnnotationHighlightLayer.cs
- XmlUTF8TextWriter.cs
- InternalSafeNativeMethods.cs
- SafeNativeMethodsCLR.cs
- BindUriHelper.cs
- OleDbEnumerator.cs
- XmlAttributeAttribute.cs
- TargetException.cs
- OdbcRowUpdatingEvent.cs
- GridPattern.cs
- PrePrepareMethodAttribute.cs
- XmlCollation.cs
- SoapAttributeAttribute.cs
- SQLByteStorage.cs
- TypeResolver.cs
- PersonalizationStateQuery.cs
- OleDbCommand.cs
- IdentityNotMappedException.cs
- GridLengthConverter.cs
- UserControlParser.cs
- CorrelationKey.cs
- NameSpaceEvent.cs
- GlobalItem.cs
- SoundPlayerAction.cs
- Statements.cs
- BmpBitmapEncoder.cs
- InfoCardTraceRecord.cs
- ControllableStoryboardAction.cs
- ExceptionHandlers.cs
- KeyNotFoundException.cs
- _FtpControlStream.cs
- Stroke2.cs
- MsmqIntegrationInputMessage.cs
- HwndKeyboardInputProvider.cs
- SafeBitVector32.cs
- sortedlist.cs
- Attachment.cs
- ObjectListField.cs
- externdll.cs
- SortExpressionBuilder.cs
- HostedController.cs
- AxHost.cs
- FileSystemWatcher.cs
- ControlDesigner.cs
- SoapProtocolImporter.cs
- Dump.cs