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
- DrawingDrawingContext.cs
- DatatypeImplementation.cs
- PointLightBase.cs
- CryptoApi.cs
- CodeTypeDeclaration.cs
- ProfileSettingsCollection.cs
- TransformedBitmap.cs
- CodeDelegateInvokeExpression.cs
- SiteOfOriginContainer.cs
- QueryExpr.cs
- ArithmeticException.cs
- RegistryConfigurationProvider.cs
- DataGridCellItemAutomationPeer.cs
- DataSourceSelectArguments.cs
- ExpressionCopier.cs
- Geometry3D.cs
- ElementHostPropertyMap.cs
- ChannelServices.cs
- HorizontalAlignConverter.cs
- RecognizedAudio.cs
- ResourcesBuildProvider.cs
- PrintDialogException.cs
- MultiDataTrigger.cs
- Rotation3D.cs
- SafeFreeMibTable.cs
- x509utils.cs
- WSSecureConversation.cs
- SafeUserTokenHandle.cs
- ColorTypeConverter.cs
- NetworkInformationException.cs
- DropTarget.cs
- NamespaceQuery.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- StrokeNodeOperations.cs
- WebPartPersonalization.cs
- Border.cs
- TypeElement.cs
- EntityDesignerUtils.cs
- sqlmetadatafactory.cs
- HatchBrush.cs
- DataControlField.cs
- PathData.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- ObjectListCommand.cs
- isolationinterop.cs
- SerializerWriterEventHandlers.cs
- DbConnectionOptions.cs
- SharedHttpsTransportManager.cs
- ResourceWriter.cs
- ProxyWebPartManagerDesigner.cs
- WorkflowDispatchContext.cs
- Win32KeyboardDevice.cs
- DesignerProperties.cs
- WorkflowDesigner.cs
- ThemeDictionaryExtension.cs
- AudioFormatConverter.cs
- CompilerError.cs
- HttpHeaderCollection.cs
- EdmPropertyAttribute.cs
- QueryOptionExpression.cs
- SchemaReference.cs
- SystemIcons.cs
- VoiceChangeEventArgs.cs
- CqlLexerHelpers.cs
- XmlReturnWriter.cs
- XmlSchema.cs
- CommunicationObjectAbortedException.cs
- SettingsPropertyCollection.cs
- ParseChildrenAsPropertiesAttribute.cs
- MenuItem.cs
- XmlSchemaAll.cs
- LineServices.cs
- ProcessHost.cs
- DesignerResources.cs
- ContentType.cs
- WorkflowServiceNamespace.cs
- LayoutInformation.cs
- TraceHelpers.cs
- XmlSchemaDatatype.cs
- InkPresenter.cs
- ImageDrawing.cs
- OneWayBindingElement.cs
- SequenceNumber.cs
- SqlCommandSet.cs
- LinqDataSourceEditData.cs
- ParseElement.cs
- UInt16Converter.cs
- ValueQuery.cs
- Transform3DGroup.cs
- PointConverter.cs
- DataGridColumnCollectionEditor.cs
- GenericAuthenticationEventArgs.cs
- Psha1DerivedKeyGenerator.cs
- UserValidatedEventArgs.cs
- PropertyInformationCollection.cs
- RIPEMD160Managed.cs
- HierarchicalDataSourceControl.cs
- SystemPens.cs
- sqlstateclientmanager.cs
- DetailsViewInsertEventArgs.cs