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
- SRDisplayNameAttribute.cs
- CollectionChangedEventManager.cs
- ClientTargetSection.cs
- DefaultEvaluationContext.cs
- StoreAnnotationsMap.cs
- XslCompiledTransform.cs
- Transform3DCollection.cs
- UInt32Converter.cs
- UInt32Storage.cs
- SamlConditions.cs
- RadioButtonDesigner.cs
- HiddenField.cs
- Polyline.cs
- AttachmentService.cs
- ZipPackage.cs
- XmlRawWriter.cs
- ClientSponsor.cs
- RIPEMD160.cs
- PartialCachingAttribute.cs
- Accessible.cs
- MultiTrigger.cs
- GlyphCache.cs
- EventPrivateKey.cs
- XmlLinkedNode.cs
- CodeParameterDeclarationExpressionCollection.cs
- BuildResultCache.cs
- _FtpDataStream.cs
- ConfigurationLockCollection.cs
- FileLevelControlBuilderAttribute.cs
- LowerCaseStringConverter.cs
- ReferencedType.cs
- ListViewItemCollectionEditor.cs
- DataTableMapping.cs
- SettingsAttributeDictionary.cs
- CatalogZone.cs
- ControlCodeDomSerializer.cs
- EntityClientCacheKey.cs
- EntityDataSourceQueryBuilder.cs
- BindingRestrictions.cs
- PartialTrustVisibleAssembly.cs
- EntityCommandDefinition.cs
- Effect.cs
- RawAppCommandInputReport.cs
- ExceptionTrace.cs
- RequestCacheEntry.cs
- DesignerSerializationOptionsAttribute.cs
- ExitEventArgs.cs
- HttpValueCollection.cs
- ProcessHostMapPath.cs
- PackageDigitalSignature.cs
- BmpBitmapDecoder.cs
- CqlParserHelpers.cs
- ActivityBuilderHelper.cs
- DiagnosticsConfiguration.cs
- DataGridViewColumnCollection.cs
- CompiledELinqQueryState.cs
- webproxy.cs
- ImportFileRequest.cs
- Scheduler.cs
- NestPullup.cs
- OleDbPermission.cs
- AdapterUtil.cs
- ByteStorage.cs
- FtpWebRequest.cs
- PatternMatcher.cs
- CaseStatement.cs
- CatalogPart.cs
- DbReferenceCollection.cs
- InnerItemCollectionView.cs
- Underline.cs
- TypeReference.cs
- XamlFigureLengthSerializer.cs
- BaseTemplateCodeDomTreeGenerator.cs
- Deflater.cs
- EntityContainerRelationshipSet.cs
- InvalidCommandTreeException.cs
- AutomationAttributeInfo.cs
- Triangle.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- WorkItem.cs
- RegisteredScript.cs
- BuildProviderAppliesToAttribute.cs
- ProviderConnectionPointCollection.cs
- CurrentChangedEventManager.cs
- DbConnectionPool.cs
- HttpHeaderCollection.cs
- WebPartMovingEventArgs.cs
- CellLabel.cs
- BigInt.cs
- RelationshipType.cs
- figurelength.cs
- PersonalizationProviderHelper.cs
- DataFormat.cs
- XmlElementAttribute.cs
- ObjectMemberMapping.cs
- SmtpNtlmAuthenticationModule.cs
- StreamGeometry.cs
- IndexOutOfRangeException.cs
- TextOnlyOutput.cs
- WebConfigurationHost.cs