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
- TextureBrush.cs
- HideDisabledControlAdapter.cs
- Geometry3D.cs
- StandardCommands.cs
- StackBuilderSink.cs
- TemplateXamlParser.cs
- TimeSpan.cs
- RuntimeCompatibilityAttribute.cs
- OpenTypeMethods.cs
- OleDbDataAdapter.cs
- SQLByteStorage.cs
- HashMembershipCondition.cs
- DrawListViewSubItemEventArgs.cs
- PeerInvitationResponse.cs
- DbConnectionStringBuilder.cs
- XmlSchemaFacet.cs
- ComAdminInterfaces.cs
- IPEndPointCollection.cs
- SchemaNotation.cs
- EncodingInfo.cs
- SchemaElement.cs
- ToolboxItemAttribute.cs
- ReachNamespaceInfo.cs
- ListViewGroupItemCollection.cs
- RegexCapture.cs
- dataSvcMapFileLoader.cs
- CodeTypeOfExpression.cs
- UIPropertyMetadata.cs
- DataTableMappingCollection.cs
- DictionaryEntry.cs
- SessionSwitchEventArgs.cs
- TransformerInfoCollection.cs
- ParameterCollection.cs
- LicenseManager.cs
- SectionVisual.cs
- DifferencingCollection.cs
- Columns.cs
- SchemaImporter.cs
- TextBoxDesigner.cs
- DateTimeValueSerializerContext.cs
- DerivedKeySecurityToken.cs
- BinaryWriter.cs
- WrappedIUnknown.cs
- MultilineStringConverter.cs
- DefaultPropertyAttribute.cs
- Util.cs
- ServiceAuthorizationElement.cs
- ToolStripOverflowButton.cs
- WebPartEditorCancelVerb.cs
- SpecialFolderEnumConverter.cs
- METAHEADER.cs
- DelimitedListTraceListener.cs
- URIFormatException.cs
- InkCanvas.cs
- CellIdBoolean.cs
- TextStore.cs
- ProviderException.cs
- Crypto.cs
- DesignerImageAdapter.cs
- PropertyManager.cs
- ConnectionPointCookie.cs
- ReadOnlyHierarchicalDataSource.cs
- ComplexLine.cs
- StateInitialization.cs
- WebScriptClientGenerator.cs
- Binding.cs
- SystemBrushes.cs
- RichTextBox.cs
- DriveInfo.cs
- SerializableTypeCodeDomSerializer.cs
- Dynamic.cs
- KoreanLunisolarCalendar.cs
- OdbcParameterCollection.cs
- IntAverageAggregationOperator.cs
- ColumnResult.cs
- CodeTypeDeclarationCollection.cs
- ValidationPropertyAttribute.cs
- RadioButton.cs
- sqlpipe.cs
- VisualStyleElement.cs
- MultiView.cs
- ObjectStateManager.cs
- EncryptedPackageFilter.cs
- TaskFileService.cs
- HtmlFormAdapter.cs
- MultiView.cs
- SortKey.cs
- DrawingCollection.cs
- CodeDirectionExpression.cs
- CryptoConfig.cs
- FtpCachePolicyElement.cs
- PathFigure.cs
- TemplatePagerField.cs
- DrawListViewItemEventArgs.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- EditorZone.cs
- DLinqDataModelProvider.cs
- CharacterHit.cs
- Table.cs
- HitTestWithGeometryDrawingContextWalker.cs