Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Activities / System / ServiceModel / XamlIntegration / ServiceXNameTypeConverter.cs / 1305376 / ServiceXNameTypeConverter.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.XamlIntegration { using System.ComponentModel; using System.Globalization; using System.Runtime; using System.Xml.Linq; public class ServiceXNameTypeConverter : TypeConverter { public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { return XNameTypeConverterHelper.CanConvertFrom(sourceType); } public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { string stringValue = value as string; if (!string.IsNullOrEmpty(stringValue)) { if (!IsQualifiedName(stringValue)) { // We want the name to remain unqualified; we don't want XNameTypeConverter to add the default namespace return XName.Get(stringValue); } } return XNameTypeConverterHelper.ConvertFrom(context, value) ?? base.ConvertFrom(context, culture, value); } public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { return XNameTypeConverterHelper.CanConvertTo(destinationType); } public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { XName name = value as XName; if (destinationType == typeof(string) && name != null) { if (name.Namespace == XNamespace.None) { // return unqualified name return name.LocalName; } else { string result = (string)(XNameTypeConverterHelper.ConvertTo(context, value, destinationType) ?? base.ConvertTo(context, culture, value, destinationType)); if (IsQualifiedName(result)) { return result; } else { // The name is in the default XAML namespace, so we need to fully-qualify it, // or we'll interpret it as unqualified in ConvertFrom // Also need to escape the {} so it doesn't get interpreted as MarkupExtension return name.ToString().Replace("{","{{").Replace("}","}}"); } } } else { return XNameTypeConverterHelper.ConvertTo(context, value, destinationType) ?? base.ConvertTo(context, culture, value, destinationType); } } bool IsQualifiedName(string name) { return (name.IndexOf(':') >= 1) || (name.Length > 0 && name[0] == '{'); } } } // 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
- ByteFacetDescriptionElement.cs
- ParserExtension.cs
- RecommendedAsConfigurableAttribute.cs
- ErrorProvider.cs
- ObjectCloneHelper.cs
- LambdaCompiler.Statements.cs
- HybridDictionary.cs
- XmlSchemaComplexType.cs
- StorageTypeMapping.cs
- AccessKeyManager.cs
- Delegate.cs
- WhitespaceRuleReader.cs
- WebServiceClientProxyGenerator.cs
- ToolStripItemClickedEventArgs.cs
- ClientSettingsSection.cs
- DockProviderWrapper.cs
- ListSortDescription.cs
- XmlSerializationWriter.cs
- MetadataSerializer.cs
- SoapAttributeAttribute.cs
- SQLUtility.cs
- ControlTemplate.cs
- LogicalChannel.cs
- RadioButtonRenderer.cs
- CaseInsensitiveOrdinalStringComparer.cs
- RemotingServices.cs
- FixedSchema.cs
- FileResponseElement.cs
- SharedPersonalizationStateInfo.cs
- DescendantBaseQuery.cs
- PopupControlService.cs
- MoveSizeWinEventHandler.cs
- TypeDescriptionProvider.cs
- AssertHelper.cs
- HuffModule.cs
- ExpiredSecurityTokenException.cs
- GlobalizationSection.cs
- ParentControlDesigner.cs
- KeyGesture.cs
- InstanceDataCollection.cs
- FontConverter.cs
- ObsoleteAttribute.cs
- PageClientProxyGenerator.cs
- ConstantProjectedSlot.cs
- ToolboxSnapDragDropEventArgs.cs
- FunctionGenerator.cs
- ConstructorNeedsTagAttribute.cs
- WindowsTreeView.cs
- DirectionalAction.cs
- BindingMemberInfo.cs
- PropertyGridCommands.cs
- ServiceDescription.cs
- SpotLight.cs
- CharEnumerator.cs
- IndexerNameAttribute.cs
- ByteStack.cs
- CopyAttributesAction.cs
- XdrBuilder.cs
- EditorPartDesigner.cs
- CellTreeNodeVisitors.cs
- RepeaterItemEventArgs.cs
- Color.cs
- ValuePattern.cs
- EncryptedPackageFilter.cs
- SerializationSectionGroup.cs
- BamlLocalizableResourceKey.cs
- ADConnectionHelper.cs
- IListConverters.cs
- SQLSingle.cs
- Attributes.cs
- HorizontalAlignConverter.cs
- DataServiceHost.cs
- ConfigurationElementCollection.cs
- KeyToListMap.cs
- TableParagraph.cs
- ExpressionPrinter.cs
- PictureBox.cs
- SelectionItemPattern.cs
- HttpCapabilitiesSectionHandler.cs
- HttpCapabilitiesEvaluator.cs
- XmlCDATASection.cs
- IndexOutOfRangeException.cs
- XmlDeclaration.cs
- ADMembershipProvider.cs
- SelectionItemPattern.cs
- BaseComponentEditor.cs
- BrowserCapabilitiesCompiler.cs
- RepeaterItem.cs
- EntityWithKeyStrategy.cs
- TraceContextEventArgs.cs
- DBDataPermission.cs
- FrameSecurityDescriptor.cs
- MetadataArtifactLoaderFile.cs
- ServiceTimeoutsBehavior.cs
- PropertyGeneratedEventArgs.cs
- ConnectivityStatus.cs
- HtmlElementErrorEventArgs.cs
- Lasso.cs
- uribuilder.cs
- _HTTPDateParse.cs