Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / CompMod / System / ComponentModel / TimeSpanConverter.cs / 1 / TimeSpanConverter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.ComponentModel {
using Microsoft.Win32;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics;
using System.Globalization;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Runtime.Remoting;
using System.Runtime.Serialization.Formatters;
using System.Security.Permissions;
using System.Threading;
///
/// Provides a type converter to convert
/// objects to and from various
/// other representations.
///
[HostProtection(SharedState = true)]
public class TimeSpanConverter : TypeConverter
{
///
/// Gets a value indicating whether this converter can
/// convert an object in the given source type to a object using the
/// specified context.
///
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) {
if (sourceType == typeof(string)) {
return true;
}
return base.CanConvertFrom(context, sourceType);
}
///
/// Gets a value indicating whether this converter can
/// convert an object to the given destination type using the context.
///
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) {
if (destinationType == typeof(InstanceDescriptor)) {
return true;
}
return base.CanConvertTo(context, destinationType);
}
///
/// Converts the given object to a
/// object.
///
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) {
if (value is string) {
string text = ((string)value).Trim();
try {
return TimeSpan.Parse(text);
}
catch (FormatException e) {
throw new FormatException(SR.GetString(SR.ConvertInvalidPrimitive, (string)value, "TimeSpan"), e);
}
}
return base.ConvertFrom(context, culture, value);
}
///
/// Converts the given object to another type. The most common types to convert
/// are to and from a string object. The default implementation will make a call
/// to ToString on the object if the object is valid and if the destination
/// type is string. If this cannot convert to the desitnation type, this will
/// throw a NotSupportedException.
///
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
if (destinationType == null) {
throw new ArgumentNullException("destinationType");
}
if (destinationType == typeof(InstanceDescriptor) && value is TimeSpan) {
MethodInfo method = typeof(TimeSpan).GetMethod("Parse", new Type[] {typeof(string)});
if (method != null) {
return new InstanceDescriptor(method, new object[] {value.ToString()});
}
}
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.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.ComponentModel {
using Microsoft.Win32;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics;
using System.Globalization;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Runtime.Remoting;
using System.Runtime.Serialization.Formatters;
using System.Security.Permissions;
using System.Threading;
///
/// Provides a type converter to convert
/// objects to and from various
/// other representations.
///
[HostProtection(SharedState = true)]
public class TimeSpanConverter : TypeConverter
{
///
/// Gets a value indicating whether this converter can
/// convert an object in the given source type to a object using the
/// specified context.
///
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) {
if (sourceType == typeof(string)) {
return true;
}
return base.CanConvertFrom(context, sourceType);
}
///
/// Gets a value indicating whether this converter can
/// convert an object to the given destination type using the context.
///
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) {
if (destinationType == typeof(InstanceDescriptor)) {
return true;
}
return base.CanConvertTo(context, destinationType);
}
///
/// Converts the given object to a
/// object.
///
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) {
if (value is string) {
string text = ((string)value).Trim();
try {
return TimeSpan.Parse(text);
}
catch (FormatException e) {
throw new FormatException(SR.GetString(SR.ConvertInvalidPrimitive, (string)value, "TimeSpan"), e);
}
}
return base.ConvertFrom(context, culture, value);
}
///
/// Converts the given object to another type. The most common types to convert
/// are to and from a string object. The default implementation will make a call
/// to ToString on the object if the object is valid and if the destination
/// type is string. If this cannot convert to the desitnation type, this will
/// throw a NotSupportedException.
///
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
if (destinationType == null) {
throw new ArgumentNullException("destinationType");
}
if (destinationType == typeof(InstanceDescriptor) && value is TimeSpan) {
MethodInfo method = typeof(TimeSpan).GetMethod("Parse", new Type[] {typeof(string)});
if (method != null) {
return new InstanceDescriptor(method, new object[] {value.ToString()});
}
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
}
// 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
- SortDescriptionCollection.cs
- CustomErrorsSectionWrapper.cs
- InkPresenterAutomationPeer.cs
- StreamGeometry.cs
- ViewBase.cs
- TextCollapsingProperties.cs
- XmlDocumentViewSchema.cs
- LineProperties.cs
- KeyPressEvent.cs
- ObjectParameter.cs
- EventLogEntryCollection.cs
- LinkDesigner.cs
- MetadataArtifactLoaderFile.cs
- ChtmlTextWriter.cs
- Triangle.cs
- RawStylusInputReport.cs
- Regex.cs
- UndirectedGraph.cs
- TriggerAction.cs
- Container.cs
- DependencySource.cs
- DataGridAddNewRow.cs
- EmptyEnumerable.cs
- SqlRetyper.cs
- InputMethodStateChangeEventArgs.cs
- SHA1CryptoServiceProvider.cs
- ipaddressinformationcollection.cs
- ChangesetResponse.cs
- AmbientLight.cs
- ContextMenuService.cs
- CodeTypeConstructor.cs
- UIntPtr.cs
- TextComposition.cs
- PinnedBufferMemoryStream.cs
- Line.cs
- Profiler.cs
- UnsafeNativeMethodsMilCoreApi.cs
- MetadataArtifactLoader.cs
- DataSourceCache.cs
- QueryReaderSettings.cs
- DBCommandBuilder.cs
- DetailsViewUpdateEventArgs.cs
- QilValidationVisitor.cs
- ContentValidator.cs
- UnhandledExceptionEventArgs.cs
- ProtectedConfiguration.cs
- MessageContractMemberAttribute.cs
- PageParserFilter.cs
- PublishLicense.cs
- EasingQuaternionKeyFrame.cs
- LogConverter.cs
- ScaleTransform3D.cs
- ContentOperations.cs
- AutoGeneratedFieldProperties.cs
- NativeMethods.cs
- XmlException.cs
- FillBehavior.cs
- ClrProviderManifest.cs
- LogFlushAsyncResult.cs
- CacheAxisQuery.cs
- TextEditorSpelling.cs
- Char.cs
- TypeNameParser.cs
- TextInfo.cs
- FontInfo.cs
- IISUnsafeMethods.cs
- SourceSwitch.cs
- ReadOnlyDataSource.cs
- returneventsaver.cs
- WindowsButton.cs
- DataGridViewTopRowAccessibleObject.cs
- ActivityScheduledRecord.cs
- IItemContainerGenerator.cs
- GraphicsContext.cs
- PeerToPeerException.cs
- QuestionEventArgs.cs
- RootProfilePropertySettingsCollection.cs
- DefaultMemberAttribute.cs
- InstalledFontCollection.cs
- Substitution.cs
- printdlgexmarshaler.cs
- SystemMulticastIPAddressInformation.cs
- FilterElement.cs
- ListViewGroupConverter.cs
- UrlPath.cs
- DependencyPropertyHelper.cs
- EventDescriptorCollection.cs
- DbConnectionPoolGroupProviderInfo.cs
- XmlNavigatorStack.cs
- MethodMessage.cs
- TargetPerspective.cs
- Imaging.cs
- AudioDeviceOut.cs
- Overlapped.cs
- DataGridViewTextBoxCell.cs
- ContentPropertyAttribute.cs
- DbQueryCommandTree.cs
- StateBag.cs
- DetailsViewRowCollection.cs
- BindingExpressionBase.cs