Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------ // 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
- LinkButton.cs
- CookieProtection.cs
- DataSourceCacheDurationConverter.cs
- CodeDomDecompiler.cs
- ForeignKeyConstraint.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- ExpandedWrapper.cs
- XmlValidatingReaderImpl.cs
- ShutDownListener.cs
- CompensationHandlingFilter.cs
- CommandBindingCollection.cs
- ReflectionUtil.cs
- _WebProxyDataBuilder.cs
- DataTableReader.cs
- XmlElementList.cs
- XmlBaseWriter.cs
- DecimalConstantAttribute.cs
- TabControl.cs
- ResXResourceSet.cs
- Activity.cs
- XPathArrayIterator.cs
- ListenerConnectionModeReader.cs
- ConstructorArgumentAttribute.cs
- WebPartDisplayMode.cs
- TextServicesProperty.cs
- RequestTimeoutManager.cs
- SymLanguageVendor.cs
- DeflateInput.cs
- OracleDataReader.cs
- OptimizedTemplateContentHelper.cs
- ContainerUIElement3D.cs
- AttributeProviderAttribute.cs
- SupportsEventValidationAttribute.cs
- TemplateXamlParser.cs
- UndoEngine.cs
- RoutedCommand.cs
- DataGridViewButtonColumn.cs
- TcpClientCredentialType.cs
- TreeNodeSelectionProcessor.cs
- ReferencedAssembly.cs
- TraceHwndHost.cs
- FileUtil.cs
- RuntimeVariablesExpression.cs
- DurableRuntimeValidator.cs
- TextParagraph.cs
- Calendar.cs
- StrictModeSecurityHeaderElementInferenceEngine.cs
- SafeArrayTypeMismatchException.cs
- MappingMetadataHelper.cs
- Int32Storage.cs
- Int32AnimationUsingKeyFrames.cs
- PrintDialog.cs
- DiagnosticTrace.cs
- SqlRowUpdatingEvent.cs
- GridViewRow.cs
- _CommandStream.cs
- InvokeHandlers.cs
- SiteMapNodeCollection.cs
- ElementHostPropertyMap.cs
- UndirectedGraph.cs
- BCLDebug.cs
- TableSectionStyle.cs
- ScriptRegistrationManager.cs
- FlowDecisionLabelFeature.cs
- AssemblySettingAttributes.cs
- HttpServerUtilityBase.cs
- CompilerHelpers.cs
- DetailsViewPagerRow.cs
- PasswordTextContainer.cs
- AudioFileOut.cs
- validation.cs
- controlskin.cs
- ListItemConverter.cs
- Typeface.cs
- DesignOnlyAttribute.cs
- ProfileBuildProvider.cs
- ExtenderProvidedPropertyAttribute.cs
- MULTI_QI.cs
- CornerRadius.cs
- BindingCollection.cs
- TabRenderer.cs
- SortKey.cs
- XPathExpr.cs
- ExpressionCopier.cs
- MemberDomainMap.cs
- WorkflowTimerService.cs
- MouseActionConverter.cs
- DbCommandTree.cs
- WebControl.cs
- StringDictionaryWithComparer.cs
- EnumerableCollectionView.cs
- SizeAnimationClockResource.cs
- DoubleCollectionConverter.cs
- MarkerProperties.cs
- OleDbFactory.cs
- StateManager.cs
- XmlAttributeOverrides.cs
- EventLogger.cs
- Int32EqualityComparer.cs
- VectorConverter.cs