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
- GridItemPattern.cs
- JoinTreeNode.cs
- ImageListStreamer.cs
- RangeValueProviderWrapper.cs
- DataListDesigner.cs
- LineGeometry.cs
- TextMarkerSource.cs
- OdbcConnectionPoolProviderInfo.cs
- BindingsCollection.cs
- CounterSample.cs
- UnsafeNetInfoNativeMethods.cs
- Missing.cs
- VerticalAlignConverter.cs
- AttributeData.cs
- OutputCacheSection.cs
- RequestSecurityTokenSerializer.cs
- AsymmetricSignatureDeformatter.cs
- EntityStoreSchemaFilterEntry.cs
- XmlEncodedRawTextWriter.cs
- ImageCodecInfo.cs
- Expression.cs
- ToolStripItemImageRenderEventArgs.cs
- ReferenceService.cs
- GraphicsContext.cs
- IntegerFacetDescriptionElement.cs
- DeleteHelper.cs
- ComponentResourceKey.cs
- GlyphTypeface.cs
- CodeDirectoryCompiler.cs
- WsdlServiceChannelBuilder.cs
- WizardStepBase.cs
- MultiBindingExpression.cs
- PropertyTabAttribute.cs
- DynamicDiscoveryDocument.cs
- ValueUnavailableException.cs
- LongValidatorAttribute.cs
- RuntimeArgumentHandle.cs
- SoapMessage.cs
- MessageDescription.cs
- PhotoPrintingIntent.cs
- _FtpControlStream.cs
- Lease.cs
- Pts.cs
- ConstraintCollection.cs
- LookupBindingPropertiesAttribute.cs
- TimelineCollection.cs
- WebPageTraceListener.cs
- Stackframe.cs
- AssociationSetEnd.cs
- ServicesExceptionNotHandledEventArgs.cs
- WizardForm.cs
- DataSourceXmlSubItemAttribute.cs
- SchemaLookupTable.cs
- ToolStripMenuItem.cs
- PropertyGeneratedEventArgs.cs
- OdbcConnectionStringbuilder.cs
- WebPartDisplayModeEventArgs.cs
- TwoPhaseCommit.cs
- SmiGettersStream.cs
- ItemList.cs
- CompiledQueryCacheKey.cs
- DependencyStoreSurrogate.cs
- ResourceType.cs
- DesignerToolboxInfo.cs
- MarkupProperty.cs
- DbUpdateCommandTree.cs
- _CommandStream.cs
- Relationship.cs
- WebUtility.cs
- ColorConvertedBitmap.cs
- ContravarianceAdapter.cs
- WebDescriptionAttribute.cs
- InvokeMemberBinder.cs
- IdleTimeoutMonitor.cs
- AdapterUtil.cs
- XPathNavigator.cs
- InstanceData.cs
- WCFServiceClientProxyGenerator.cs
- Menu.cs
- AssertSection.cs
- GenericsInstances.cs
- BaseCodeDomTreeGenerator.cs
- DataGridViewComboBoxCell.cs
- While.cs
- PreviousTrackingServiceAttribute.cs
- Attributes.cs
- LabelDesigner.cs
- WarningException.cs
- SpecularMaterial.cs
- UriScheme.cs
- XpsManager.cs
- ImplicitInputBrush.cs
- DataList.cs
- RTLAwareMessageBox.cs
- HideDisabledControlAdapter.cs
- IsolatedStorageFilePermission.cs
- UnitySerializationHolder.cs
- DesignerTransaction.cs
- SymbolTable.cs
- RunWorkerCompletedEventArgs.cs