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
- SQLMoney.cs
- LogRecordSequence.cs
- TableAutomationPeer.cs
- SortFieldComparer.cs
- ObjRef.cs
- SerialErrors.cs
- TextParaLineResult.cs
- CompiledQuery.cs
- DerivedKeySecurityTokenStub.cs
- Section.cs
- ClientRuntimeConfig.cs
- HttpsTransportBindingElement.cs
- GraphicsContext.cs
- WindowsListViewScroll.cs
- ErrorFormatter.cs
- Vector3D.cs
- XmlSchemaException.cs
- DesignerTransactionCloseEvent.cs
- Utility.cs
- XmlException.cs
- ReadingWritingEntityEventArgs.cs
- Thumb.cs
- TrackBar.cs
- InvokePattern.cs
- SmtpFailedRecipientsException.cs
- LinqDataSource.cs
- RegisteredHiddenField.cs
- TargetException.cs
- TTSVoice.cs
- XmlDataSourceNodeDescriptor.cs
- PageTheme.cs
- HttpException.cs
- SqlUtil.cs
- SqlParameterizer.cs
- XmlSignatureProperties.cs
- LightweightCodeGenerator.cs
- InstanceLockException.cs
- TranslateTransform.cs
- TransformerInfoCollection.cs
- BaseProcessor.cs
- PriorityQueue.cs
- XmlCharacterData.cs
- DrawingContextDrawingContextWalker.cs
- AnnotationAdorner.cs
- ObjectQueryState.cs
- TreeViewHitTestInfo.cs
- AnnouncementEndpoint.cs
- ProcessModelSection.cs
- DbParameterCollection.cs
- ReferencedAssemblyResolver.cs
- SelectQueryOperator.cs
- DataTable.cs
- TextServicesDisplayAttribute.cs
- FixedTextPointer.cs
- ObjectSecurity.cs
- XPathEmptyIterator.cs
- RepeaterItemCollection.cs
- WindowsFormsLinkLabel.cs
- ClientConfigurationSystem.cs
- TextSelection.cs
- SqlTypesSchemaImporter.cs
- CodeArrayIndexerExpression.cs
- TemplateFactory.cs
- ToolboxBitmapAttribute.cs
- PathTooLongException.cs
- WebColorConverter.cs
- EmptyControlCollection.cs
- TextControlDesigner.cs
- SqlCacheDependencySection.cs
- RawStylusInput.cs
- DBDataPermissionAttribute.cs
- SiteMapNode.cs
- OleDbConnectionInternal.cs
- SiteMembershipCondition.cs
- ListBox.cs
- SelectedDatesCollection.cs
- UserControlParser.cs
- ValueTypeFixupInfo.cs
- RayMeshGeometry3DHitTestResult.cs
- HtmlTableCell.cs
- TimeIntervalCollection.cs
- X509CertificateInitiatorClientCredential.cs
- RNGCryptoServiceProvider.cs
- DataKeyArray.cs
- FixedSOMImage.cs
- ToolStrip.cs
- BoundField.cs
- ConfigXmlSignificantWhitespace.cs
- XmlObjectSerializerReadContext.cs
- EditorServiceContext.cs
- MouseGesture.cs
- MinimizableAttributeTypeConverter.cs
- ComponentSerializationService.cs
- SchemaNamespaceManager.cs
- BooleanAnimationUsingKeyFrames.cs
- DesignerAttribute.cs
- QuotedPrintableStream.cs
- WebBrowser.cs
- unsafeIndexingFilterStream.cs
- ProjectionAnalyzer.cs