Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / System.Runtime.DurableInstancing / System / Runtime / XNameTypeConverter.cs / 1305376 / XNameTypeConverter.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Runtime { using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Runtime; using System.Xaml; using System.Xml.Linq; internal static class XNameTypeConverterHelper { public static bool CanConvertFrom(Type sourceType) { return sourceType == typeof(string); } public static object ConvertFrom(ITypeDescriptorContext context, object value) { return XNameTypeConverterHelper.ConvertFromHelper(context, value); } public static bool CanConvertTo(Type destinationType) { return destinationType == typeof(string); } public static object ConvertTo(ITypeDescriptorContext context, object value, Type destinationType) { return XNameTypeConverterHelper.ConvertToHelper(context, value, destinationType); } internal static object ConvertFromHelper(ITypeDescriptorContext context, object value) { if (value == null) { return null; } String stringValue = value as String; if (stringValue == null) { return null; } stringValue = stringValue.Trim(); if (stringValue == String.Empty) { return null; } IXamlNamespaceResolver resolver = context.GetService(typeof(IXamlNamespaceResolver)) as IXamlNamespaceResolver; if (resolver == null) { return null; } if (stringValue[0] == '{') { return XName.Get(stringValue); } int indexOfColon = stringValue.IndexOf(':'); string prefix, localName; if (indexOfColon >= 0) { prefix = stringValue.Substring(0, indexOfColon); localName = stringValue.Substring(indexOfColon + 1); } else { prefix = string.Empty; localName = stringValue; } string ns = resolver.GetNamespace(prefix); if (ns == null) { throw Fx.Exception.AsError(new FormatException(SRCore.CouldNotResolveNamespacePrefix(prefix))); } return XName.Get(localName, ns); } internal static object ConvertToHelper(ITypeDescriptorContext context, object value, Type destinationType) { XName name = value as XName; if (destinationType == typeof(string) && name != null) { if (context != null) { var lookupPrefix = (INamespacePrefixLookup)context.GetService(typeof(INamespacePrefixLookup)); if (lookupPrefix != null) { string prefix = lookupPrefix.LookupPrefix(name.Namespace.NamespaceName); if (String.IsNullOrEmpty(prefix)) { // Default namespace is in scope // return name.LocalName; } else { return prefix + ":" + name.LocalName; } } } } return null; } } } // 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
- Visual3DCollection.cs
- FailedToStartupUIException.cs
- ChangeToolStripParentVerb.cs
- ProjectionPlanCompiler.cs
- ReadOnlyPropertyMetadata.cs
- DataGridViewColumn.cs
- ProcessModuleDesigner.cs
- BooleanFunctions.cs
- XXXInfos.cs
- NetStream.cs
- CodeRegionDirective.cs
- prefixendpointaddressmessagefilter.cs
- RecommendedAsConfigurableAttribute.cs
- XmlSchemaNotation.cs
- Mappings.cs
- DataRelation.cs
- ProxyGenerationError.cs
- BitmapCacheBrush.cs
- webeventbuffer.cs
- PriorityBinding.cs
- EncoderReplacementFallback.cs
- OdbcEnvironment.cs
- EventSourceCreationData.cs
- MimeTypePropertyAttribute.cs
- CodeGotoStatement.cs
- RegisteredScript.cs
- GridProviderWrapper.cs
- Maps.cs
- PerformanceCounterCategory.cs
- UndoManager.cs
- ActiveXContainer.cs
- CellIdBoolean.cs
- Inflater.cs
- CodeIterationStatement.cs
- UnaryNode.cs
- SizeValueSerializer.cs
- TextBox.cs
- TextRenderer.cs
- DependencyPropertyConverter.cs
- ByteStorage.cs
- FixedSOMTextRun.cs
- ToolboxDataAttribute.cs
- UIElementAutomationPeer.cs
- TagPrefixAttribute.cs
- GridViewSortEventArgs.cs
- CacheDependency.cs
- DefaultAsyncDataDispatcher.cs
- _SSPISessionCache.cs
- TextPattern.cs
- MexTcpBindingCollectionElement.cs
- TableItemProviderWrapper.cs
- DataGridRowClipboardEventArgs.cs
- AnnotationAdorner.cs
- ISessionStateStore.cs
- StreamedWorkflowDefinitionContext.cs
- X509Certificate.cs
- DataSourceNameHandler.cs
- Queue.cs
- BaseDataList.cs
- ClaimComparer.cs
- SqlErrorCollection.cs
- DefaultDiscoveryServiceExtension.cs
- LayoutTableCell.cs
- DataSet.cs
- BuildManager.cs
- TextRangeSerialization.cs
- QuaternionAnimation.cs
- LineVisual.cs
- SQLBinaryStorage.cs
- SystemIPInterfaceStatistics.cs
- CacheSection.cs
- StreamUpgradeBindingElement.cs
- SqlDataSource.cs
- RepeatInfo.cs
- DropSource.cs
- Rotation3D.cs
- HTMLTagNameToTypeMapper.cs
- DataPagerField.cs
- UnionCodeGroup.cs
- TextBoxRenderer.cs
- SqlCharStream.cs
- Image.cs
- HostingEnvironment.cs
- ColumnMapTranslator.cs
- HostTimeoutsElement.cs
- MessageQueuePermissionEntry.cs
- PerformanceCounterCategory.cs
- BroadcastEventHelper.cs
- DataSourceSelectArguments.cs
- CalendarTable.cs
- GenericUriParser.cs
- ValueQuery.cs
- StateItem.cs
- DataServiceConfiguration.cs
- ReadOnlyHierarchicalDataSourceView.cs
- ImageMapEventArgs.cs
- PTProvider.cs
- Rules.cs
- _SecureChannel.cs
- LinqDataSource.cs