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
- PtsCache.cs
- updatecommandorderer.cs
- ExtendedProperty.cs
- WebBrowserPermission.cs
- PolicyException.cs
- OleCmdHelper.cs
- TextComposition.cs
- ImageSource.cs
- DataContractSerializer.cs
- WebBrowserDocumentCompletedEventHandler.cs
- DynamicILGenerator.cs
- EncoderExceptionFallback.cs
- FileDetails.cs
- Transform3D.cs
- DataGridHelper.cs
- ComPlusThreadInitializer.cs
- HandlerWithFactory.cs
- TimeSpanConverter.cs
- TripleDES.cs
- ListItem.cs
- TimeEnumHelper.cs
- Int64KeyFrameCollection.cs
- KeyEvent.cs
- NetworkInformationPermission.cs
- CodeNamespace.cs
- ToolStripRenderer.cs
- CollaborationHelperFunctions.cs
- LayoutTableCell.cs
- FlowDocumentReader.cs
- EntityDesignerBuildProvider.cs
- ProfileParameter.cs
- GridView.cs
- UserControlParser.cs
- ImageAnimator.cs
- ListViewTableCell.cs
- TextServicesLoader.cs
- SqlMethodTransformer.cs
- MatrixUtil.cs
- PersonalizationStateInfo.cs
- WebConfigurationHost.cs
- XmlLoader.cs
- GridViewCellAutomationPeer.cs
- RayMeshGeometry3DHitTestResult.cs
- transactioncontext.cs
- HeaderUtility.cs
- SelectedPathEditor.cs
- KeyValuePair.cs
- CompoundFileStorageReference.cs
- PassportAuthentication.cs
- ExtensionFile.cs
- ToolStrip.cs
- TriState.cs
- WebPartEditorApplyVerb.cs
- PathStreamGeometryContext.cs
- InternalCache.cs
- Message.cs
- NameValueSectionHandler.cs
- ObjectConverter.cs
- AssociationSetMetadata.cs
- ProcessModelSection.cs
- HMACSHA1.cs
- MetabaseSettingsIis7.cs
- Timeline.cs
- LinkConverter.cs
- TableDetailsRow.cs
- TableCell.cs
- ToolStripTemplateNode.cs
- TypeRestriction.cs
- IdentityHolder.cs
- RepeaterItemEventArgs.cs
- TextParentUndoUnit.cs
- InvokePatternIdentifiers.cs
- ReversePositionQuery.cs
- EqualityComparer.cs
- SafeViewOfFileHandle.cs
- TrackingDataItemValue.cs
- CompilerScope.Storage.cs
- XmlNodeChangedEventManager.cs
- ResourceManager.cs
- CachedTypeface.cs
- FieldMetadata.cs
- Win32KeyboardDevice.cs
- LogPolicy.cs
- InvalidProgramException.cs
- SafeViewOfFileHandle.cs
- CompilerGeneratedAttribute.cs
- SortFieldComparer.cs
- RegistryPermission.cs
- FocusChangedEventArgs.cs
- BoolExpressionVisitors.cs
- TimeManager.cs
- AnchoredBlock.cs
- SevenBitStream.cs
- ScrollEvent.cs
- SafeLibraryHandle.cs
- MemberDescriptor.cs
- CharacterBuffer.cs
- XmlDocumentFieldSchema.cs
- SystemIcmpV4Statistics.cs
- ImmutableObjectAttribute.cs