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
- NetworkCredential.cs
- ProtocolsConfiguration.cs
- UidManager.cs
- KeyToListMap.cs
- ParsedAttributeCollection.cs
- WasNotInstalledException.cs
- BrowserDefinitionCollection.cs
- CheckBoxAutomationPeer.cs
- DockProviderWrapper.cs
- DataViewManagerListItemTypeDescriptor.cs
- AtomicFile.cs
- TextPointerBase.cs
- MonthChangedEventArgs.cs
- XmlEntity.cs
- ScriptControlManager.cs
- SmiEventStream.cs
- FrameworkElementFactory.cs
- AssemblySettingAttributes.cs
- UnsafeNativeMethodsPenimc.cs
- DataGridLengthConverter.cs
- SelectionRange.cs
- DataControlFieldHeaderCell.cs
- OSFeature.cs
- CompilerError.cs
- TiffBitmapDecoder.cs
- GridViewPageEventArgs.cs
- HideDisabledControlAdapter.cs
- RootAction.cs
- TraceLevelHelper.cs
- CompilerCollection.cs
- FixedSOMLineCollection.cs
- Encoder.cs
- TextSearch.cs
- CorrelationInitializer.cs
- SimpleExpression.cs
- TextTreeObjectNode.cs
- CapabilitiesUse.cs
- ResumeStoryboard.cs
- MultipartIdentifier.cs
- HideDisabledControlAdapter.cs
- AgileSafeNativeMemoryHandle.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- HtmlTableRow.cs
- DefaultValueTypeConverter.cs
- WebControlParameterProxy.cs
- PeerReferralPolicy.cs
- IntSecurity.cs
- ConfigurationStrings.cs
- MexHttpsBindingCollectionElement.cs
- SelectorAutomationPeer.cs
- ClientScriptItemCollection.cs
- ContentFileHelper.cs
- RequestCachePolicyConverter.cs
- BitVec.cs
- RuntimeConfigLKG.cs
- ConfigurationStrings.cs
- PathGradientBrush.cs
- Stack.cs
- ResolveMatchesMessageCD1.cs
- ConnectionInterfaceCollection.cs
- RandomDelayQueuedSendsAsyncResult.cs
- DataIdProcessor.cs
- SafeNativeMethods.cs
- XmlSchemaSimpleTypeList.cs
- XmlAnyAttributeAttribute.cs
- ParallelTimeline.cs
- DirectionalLight.cs
- DataDocumentXPathNavigator.cs
- EnvironmentPermission.cs
- SQLGuidStorage.cs
- SpoolingTask.cs
- ObjectSet.cs
- _Events.cs
- SecurityUtils.cs
- XPathNavigatorKeyComparer.cs
- SamlDoNotCacheCondition.cs
- ReferentialConstraintRoleElement.cs
- SqlAliaser.cs
- Typeface.cs
- NodeInfo.cs
- Rules.cs
- SvcMapFile.cs
- SystemSounds.cs
- DtcInterfaces.cs
- BoundConstants.cs
- QuerySetOp.cs
- SuppressMergeCheckAttribute.cs
- ValidationErrorEventArgs.cs
- ByteAnimationUsingKeyFrames.cs
- RequestResponse.cs
- Size3DValueSerializer.cs
- StyleHelper.cs
- SQLString.cs
- DbConnectionPool.cs
- KeyTimeConverter.cs
- DataGridViewControlCollection.cs
- XsltException.cs
- TableProvider.cs
- PointAnimationBase.cs
- RecognitionEventArgs.cs