Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / ComponentModel / GuidConverter.cs / 1305376 / GuidConverter.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;
///
/// Provides a
/// type converter to convert globally unique identifier objects to and from various
/// other representations.
///
[HostProtection(SharedState = true)]
public class GuidConverter : TypeConverter {
///
/// Gets a value indicating whether this
/// converter can convert an object in the given source type to a globally unique identifier object
/// using the 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 globally unique identifier object.
///
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) {
if (value is string) {
string text = ((string)value).Trim();
return new Guid(text);
}
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 Guid) {
ConstructorInfo ctor = typeof(Guid).GetConstructor(new Type[] {typeof(string)});
if (ctor != null) {
return new InstanceDescriptor(ctor, 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
- EntityCommandCompilationException.cs
- AppDomainUnloadedException.cs
- CheckedPointers.cs
- TabPageDesigner.cs
- ContainerAction.cs
- SafeHandle.cs
- XmlQueryOutput.cs
- __Error.cs
- InvalidDataContractException.cs
- TextFormatterHost.cs
- MultiBindingExpression.cs
- dbenumerator.cs
- WmfPlaceableFileHeader.cs
- CharAnimationUsingKeyFrames.cs
- ColorConverter.cs
- DiagnosticTrace.cs
- OleDbRowUpdatingEvent.cs
- NetTcpBindingCollectionElement.cs
- HashCodeCombiner.cs
- _NegotiateClient.cs
- AppLevelCompilationSectionCache.cs
- EdmEntityTypeAttribute.cs
- XmlValidatingReaderImpl.cs
- RoamingStoreFile.cs
- EtwTrackingBehavior.cs
- OdbcConnectionFactory.cs
- TextStore.cs
- SystemMulticastIPAddressInformation.cs
- ProfileBuildProvider.cs
- IndexedString.cs
- SizeKeyFrameCollection.cs
- Scheduler.cs
- HttpResponse.cs
- OutputCacheSettingsSection.cs
- SplitContainer.cs
- UserInitiatedNavigationPermission.cs
- SqlFlattener.cs
- ResizingMessageFilter.cs
- FixedTextView.cs
- DecoderBestFitFallback.cs
- ExpressionPrefixAttribute.cs
- RawStylusInput.cs
- Brush.cs
- XmlAttributeAttribute.cs
- Interop.cs
- LOSFormatter.cs
- IgnoreSection.cs
- ProcessThread.cs
- QilVisitor.cs
- HtmlElementCollection.cs
- Internal.cs
- OleDbWrapper.cs
- TableLayoutPanelCellPosition.cs
- SqlServer2KCompatibilityCheck.cs
- IArgumentProvider.cs
- SchemaTableOptionalColumn.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- WCFModelStrings.Designer.cs
- WorkflowApplicationCompletedEventArgs.cs
- DateTimeConverter.cs
- WriteLine.cs
- HtmlTernaryTree.cs
- AudioDeviceOut.cs
- ResourceDefaultValueAttribute.cs
- TextRangeEditLists.cs
- DynamicDataRoute.cs
- FunctionParameter.cs
- XamlWrapperReaders.cs
- WebPartsSection.cs
- ControlAdapter.cs
- RankException.cs
- Int32CollectionConverter.cs
- ClientSession.cs
- XmlCharacterData.cs
- DefaultSerializationProviderAttribute.cs
- XmlStrings.cs
- XmlDeclaration.cs
- HtmlEmptyTagControlBuilder.cs
- DbParameterCollection.cs
- AssertHelper.cs
- DelegatingTypeDescriptionProvider.cs
- DataGridViewMethods.cs
- QilFactory.cs
- BufferAllocator.cs
- TickBar.cs
- IdentityNotMappedException.cs
- DataListItemCollection.cs
- MetadataCache.cs
- Model3D.cs
- ToolStripDropTargetManager.cs
- COSERVERINFO.cs
- IRCollection.cs
- WebPartConnectionsConfigureVerb.cs
- InputBinder.cs
- AlternationConverter.cs
- ConnectionStringSettingsCollection.cs
- InvalidateEvent.cs
- SqlLiftIndependentRowExpressions.cs
- TreeViewBindingsEditor.cs
- XmlReflectionImporter.cs