Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Net / System / _UriTypeConverter.cs / 1 / _UriTypeConverter.cs
/*++ Copyright (c) 2003 Microsoft Corporation Module Name: _UriTypeConverter.cs Abstract: A default TypeConverter implementation for the System.Uri type Revision History: --*/ namespace System { using System.Globalization; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; // // A limited conversion is implemented such as to and from string // A conversion to InstanceDescriptor is also provided for design time support. // public class UriTypeConverter: TypeConverter { private UriKind m_UriKind; public UriTypeConverter() : this(UriKind.RelativeOrAbsolute) { } internal UriTypeConverter(UriKind uriKind) { m_UriKind = uriKind; } public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { if (sourceType == null) throw new ArgumentNullException("sourceType"); if (sourceType == typeof(string)) return true; if (typeof(Uri).IsAssignableFrom(sourceType)) return true; return base.CanConvertFrom(context, sourceType); } // public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { if (destinationType == typeof(InstanceDescriptor)) return true; if (destinationType == typeof(string)) return true; if (destinationType == typeof(Uri)) return true; return base.CanConvertTo(context, destinationType); } // public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { string uriString = value as string; if (uriString != null) return new Uri(uriString, m_UriKind); Uri uri = value as Uri; if (uri != null) return new Uri(uri.OriginalString, m_UriKind == UriKind.RelativeOrAbsolute ? uri.IsAbsoluteUri ? UriKind.Absolute : UriKind.Relative : m_UriKind); return base.ConvertFrom(context, culture, value); } // public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { Uri uri = value as Uri; if (uri != null && destinationType == typeof(InstanceDescriptor)) { ConstructorInfo ci = typeof(Uri).GetConstructor(BindingFlags.Public | BindingFlags.Instance, null, new Type[]{typeof(string), typeof(UriKind)}, null); return new InstanceDescriptor(ci, new object[] { uri.OriginalString, m_UriKind == UriKind.RelativeOrAbsolute ? uri.IsAbsoluteUri ? UriKind.Absolute : UriKind.Relative : m_UriKind }); } if (uri != null && destinationType == typeof(string)) return uri.OriginalString; if (uri != null && destinationType == typeof(Uri)) return new Uri(uri.OriginalString, m_UriKind == UriKind.RelativeOrAbsolute ? uri.IsAbsoluteUri ? UriKind.Absolute : UriKind.Relative : m_UriKind); return base.ConvertTo(context, culture, value, destinationType); } // public override bool IsValid(ITypeDescriptorContext context, object value) { string str = value as string; Uri temp; if (str != null) return Uri.TryCreate(str, m_UriKind, out temp); return value is Uri; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XamlBrushSerializer.cs
- WebBrowserEvent.cs
- DbParameterHelper.cs
- Volatile.cs
- MouseDevice.cs
- WorkflowRuntimeServiceElement.cs
- WebBrowser.cs
- ColumnMap.cs
- SqlVisitor.cs
- EnumBuilder.cs
- UserControlBuildProvider.cs
- ExecutedRoutedEventArgs.cs
- UdpMessageProperty.cs
- ConfigurationHandlersInstallComponent.cs
- SafeCoTaskMem.cs
- ServiceHostFactory.cs
- Predicate.cs
- NullableDecimalAverageAggregationOperator.cs
- InputBuffer.cs
- File.cs
- SiteMapProvider.cs
- SafeNativeMethodsMilCoreApi.cs
- GridViewColumnCollection.cs
- AnnotationObservableCollection.cs
- EventLogPermissionAttribute.cs
- BStrWrapper.cs
- RuleSettings.cs
- UriScheme.cs
- PaperSize.cs
- CustomError.cs
- XmlAttributeOverrides.cs
- webeventbuffer.cs
- HttpResponseBase.cs
- LinkClickEvent.cs
- SspiWrapper.cs
- LogicalTreeHelper.cs
- RoleBoolean.cs
- SystemNetHelpers.cs
- QilStrConcatenator.cs
- UnicodeEncoding.cs
- MdiWindowListStrip.cs
- SimpleTypesSurrogate.cs
- DesignerAdapterAttribute.cs
- ExceptionRoutedEventArgs.cs
- HttpConfigurationSystem.cs
- LazyTextWriterCreator.cs
- ListViewSelectEventArgs.cs
- ParentUndoUnit.cs
- ExtensionSimplifierMarkupObject.cs
- invalidudtexception.cs
- DecimalAnimationUsingKeyFrames.cs
- StreamReader.cs
- DataServiceRequestException.cs
- SqlDelegatedTransaction.cs
- ArrayList.cs
- Int64.cs
- FormViewModeEventArgs.cs
- DrawingContextDrawingContextWalker.cs
- XPathItem.cs
- webproxy.cs
- QueryOutputWriterV1.cs
- SslStreamSecurityUpgradeProvider.cs
- GC.cs
- DateTimeFormatInfoScanner.cs
- GeneralTransform.cs
- Endpoint.cs
- HebrewCalendar.cs
- DbConnectionClosed.cs
- PageAsyncTask.cs
- ReadOnlyMetadataCollection.cs
- XmlSchemaComplexContentRestriction.cs
- Attributes.cs
- NominalTypeEliminator.cs
- SponsorHelper.cs
- MailMessageEventArgs.cs
- RetrieveVirtualItemEventArgs.cs
- TypeUnloadedException.cs
- BitmapImage.cs
- Int32AnimationBase.cs
- ToolStripTemplateNode.cs
- storepermission.cs
- CollectionsUtil.cs
- StaticFileHandler.cs
- XmlSubtreeReader.cs
- DiscreteKeyFrames.cs
- TCPListener.cs
- LOSFormatter.cs
- ContainerParaClient.cs
- MediaElement.cs
- GuidTagList.cs
- TableItemPattern.cs
- Padding.cs
- MetadataCache.cs
- DataTableReader.cs
- TypeElement.cs
- ColumnBinding.cs
- ParameterCollection.cs
- XmlTextWriter.cs
- DummyDataSource.cs
- StaticFileHandler.cs