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
- ReferenceConverter.cs
- SqlParameterizer.cs
- BindStream.cs
- SecureEnvironment.cs
- TreeNodeCollection.cs
- ParallelEnumerableWrapper.cs
- TypeUtil.cs
- ListItemCollection.cs
- Divide.cs
- _SslSessionsCache.cs
- _HelperAsyncResults.cs
- LinqDataSourceDisposeEventArgs.cs
- SocketElement.cs
- Metafile.cs
- MenuBase.cs
- SoapTypeAttribute.cs
- CellConstantDomain.cs
- InProcStateClientManager.cs
- Dispatcher.cs
- SearchForVirtualItemEventArgs.cs
- DecoratedNameAttribute.cs
- ClientSession.cs
- ComponentEditorPage.cs
- SmiContextFactory.cs
- OleDbInfoMessageEvent.cs
- XmlAutoDetectWriter.cs
- GeneralTransform3DCollection.cs
- SerializationException.cs
- Win32.cs
- SimpleMailWebEventProvider.cs
- DataQuery.cs
- BinaryConverter.cs
- Int32Converter.cs
- SQLChars.cs
- ActivityPreviewDesigner.cs
- CalendarDataBindingHandler.cs
- CallbackException.cs
- AspNetHostingPermission.cs
- CryptoConfig.cs
- ToolStripPanel.cs
- JsonEnumDataContract.cs
- SmtpException.cs
- ListViewCancelEventArgs.cs
- Stroke.cs
- BinaryConverter.cs
- NullableLongAverageAggregationOperator.cs
- Page.cs
- DataGridViewCellStyle.cs
- PathData.cs
- XsdBuilder.cs
- SqlLiftIndependentRowExpressions.cs
- DbDeleteCommandTree.cs
- XsltContext.cs
- IpcManager.cs
- MarkupCompilePass2.cs
- ScrollChangedEventArgs.cs
- WindowVisualStateTracker.cs
- ScrollBar.cs
- CustomError.cs
- DataControlFieldTypeEditor.cs
- HandlerBase.cs
- CompiledAction.cs
- ApplicationBuildProvider.cs
- TextFormattingConverter.cs
- AdCreatedEventArgs.cs
- PipelineModuleStepContainer.cs
- ZoneMembershipCondition.cs
- PeerNodeTraceRecord.cs
- UiaCoreApi.cs
- InternalConfigConfigurationFactory.cs
- ApplicationTrust.cs
- TemplateBindingExtension.cs
- ASCIIEncoding.cs
- WindowsStatusBar.cs
- ConstraintEnumerator.cs
- FilteredDataSetHelper.cs
- ContainerAction.cs
- FixedSOMTable.cs
- PropertyItem.cs
- RequestTimeoutManager.cs
- TransformerConfigurationWizardBase.cs
- RegionInfo.cs
- Message.cs
- WebPartCatalogAddVerb.cs
- MemoryPressure.cs
- ListBoxItem.cs
- PerformanceCounterNameAttribute.cs
- SqlGenerator.cs
- DataKeyArray.cs
- SuppressMessageAttribute.cs
- Configuration.cs
- DynamicDiscoSearcher.cs
- ColumnProvider.cs
- ErrorFormatterPage.cs
- SystemNetworkInterface.cs
- HScrollProperties.cs
- SymbolPair.cs
- XhtmlBasicCommandAdapter.cs
- XamlDesignerSerializationManager.cs
- LicenseProviderAttribute.cs