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
- TranslateTransform3D.cs
- SiteMapProvider.cs
- IInstanceTable.cs
- SqlStream.cs
- ToolboxItemSnapLineBehavior.cs
- AttachedAnnotation.cs
- PersianCalendar.cs
- XMLSchema.cs
- CriticalExceptions.cs
- Screen.cs
- ResourceExpressionBuilder.cs
- Point.cs
- GenericTypeParameterBuilder.cs
- ListViewDeleteEventArgs.cs
- TextRangeEdit.cs
- QilUnary.cs
- ListMarkerSourceInfo.cs
- Polygon.cs
- ItemsPanelTemplate.cs
- SystemIPGlobalProperties.cs
- SafeMILHandle.cs
- GB18030Encoding.cs
- TimeManager.cs
- WebInvokeAttribute.cs
- SimpleMailWebEventProvider.cs
- FileSystemWatcher.cs
- ColorConverter.cs
- ToolStripSplitButton.cs
- ObjectDataSourceMethodEditor.cs
- OdbcTransaction.cs
- WebPartConnectionsCancelEventArgs.cs
- IntSecurity.cs
- SelectionItemProviderWrapper.cs
- Attribute.cs
- EncodingNLS.cs
- MessageQueueConverter.cs
- MenuItemStyleCollection.cs
- TimeoutStream.cs
- DefaultProxySection.cs
- SchemaCompiler.cs
- DurableInstanceProvider.cs
- XMLSyntaxException.cs
- EventDescriptor.cs
- CompositeCollectionView.cs
- LinqDataSourceDisposeEventArgs.cs
- BrowserCapabilitiesCodeGenerator.cs
- ConnectionPointGlyph.cs
- DotExpr.cs
- DataServiceRequestOfT.cs
- WebServiceParameterData.cs
- FontInfo.cs
- ProjectionCamera.cs
- Msmq4PoisonHandler.cs
- XmlSiteMapProvider.cs
- MultiDataTrigger.cs
- TheQuery.cs
- LockRecoveryTask.cs
- SessionMode.cs
- FixedDocumentSequencePaginator.cs
- GPRECTF.cs
- ContextBase.cs
- LinkedResource.cs
- MdiWindowListStrip.cs
- ArgumentOutOfRangeException.cs
- XPathScanner.cs
- DeviceContext.cs
- WriteableOnDemandStream.cs
- AutomationElementIdentifiers.cs
- WizardStepBase.cs
- SerializationStore.cs
- ChildChangedEventArgs.cs
- InputBindingCollection.cs
- HealthMonitoringSection.cs
- COM2IDispatchConverter.cs
- InputScope.cs
- TimeStampChecker.cs
- EntitySetDataBindingList.cs
- ControlIdConverter.cs
- ObjectIDGenerator.cs
- SamlEvidence.cs
- GridViewRowPresenter.cs
- Int64AnimationBase.cs
- StringResourceManager.cs
- CodeAssignStatement.cs
- WindowHelperService.cs
- OciHandle.cs
- WindowsFormsHost.cs
- XmlSchemaComplexType.cs
- WindowsToolbar.cs
- SiteMapHierarchicalDataSourceView.cs
- oledbmetadatacolumnnames.cs
- SmtpTransport.cs
- EntityTypeEmitter.cs
- LogAppendAsyncResult.cs
- ChtmlCalendarAdapter.cs
- WindowsFormsHostAutomationPeer.cs
- ParallelActivityDesigner.cs
- ReturnEventArgs.cs
- SchemaImporterExtension.cs
- CodeExporter.cs