Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / SMDiagnostics / System / ServiceModel / Diagnostics / EncodingFallbackAwareXmlTextWriter.cs / 1305376 / EncodingFallbackAwareXmlTextWriter.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Diagnostics { using System.Xml; using System.Text; using System.IO; class EncodingFallbackAwareXmlTextWriter : XmlTextWriter { Encoding encoding; internal EncodingFallbackAwareXmlTextWriter(TextWriter writer) : base(writer) { this.encoding = writer.Encoding; } public override void WriteString(string value) { if (!string.IsNullOrEmpty(value) && ContainsInvalidXmlChar(value)) { byte[] blob = encoding.GetBytes(value); value = encoding.GetString(blob); } base.WriteString(value); } bool ContainsInvalidXmlChar(string value) { if (string.IsNullOrEmpty(value)) { return false; } int i = 0; int len = value.Length; while (i < len) { if (XmlConvert.IsXmlChar(value[i])) { i++; continue; } if (i + 1 < len && XmlConvert.IsXmlSurrogatePair(value[i + 1], value[i])) { i += 2; continue; } return true; } return false; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Diagnostics { using System.Xml; using System.Text; using System.IO; class EncodingFallbackAwareXmlTextWriter : XmlTextWriter { Encoding encoding; internal EncodingFallbackAwareXmlTextWriter(TextWriter writer) : base(writer) { this.encoding = writer.Encoding; } public override void WriteString(string value) { if (!string.IsNullOrEmpty(value) && ContainsInvalidXmlChar(value)) { byte[] blob = encoding.GetBytes(value); value = encoding.GetString(blob); } base.WriteString(value); } bool ContainsInvalidXmlChar(string value) { if (string.IsNullOrEmpty(value)) { return false; } int i = 0; int len = value.Length; while (i < len) { if (XmlConvert.IsXmlChar(value[i])) { i++; continue; } if (i + 1 < len && XmlConvert.IsXmlSurrogatePair(value[i + 1], value[i])) { i += 2; continue; } return true; } return false; } } } // 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
- WebPartCollection.cs
- FormatStringEditor.cs
- StreamProxy.cs
- DataObjectSettingDataEventArgs.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- MarkupWriter.cs
- DataServiceCollectionOfT.cs
- ParallelForEach.cs
- SelectionEditor.cs
- EllipseGeometry.cs
- FixedTextSelectionProcessor.cs
- templategroup.cs
- TypeBuilder.cs
- HttpContextBase.cs
- DataBindingHandlerAttribute.cs
- PictureBox.cs
- Properties.cs
- BitmapEffect.cs
- Triangle.cs
- Viewport3DAutomationPeer.cs
- SafeSystemMetrics.cs
- CalendarAutoFormat.cs
- CookielessData.cs
- SimplePropertyEntry.cs
- WebSysDefaultValueAttribute.cs
- TextTreeTextNode.cs
- AppDomainAttributes.cs
- StylusPlugin.cs
- CipherData.cs
- DataSetUtil.cs
- FrugalList.cs
- WindowsGraphicsWrapper.cs
- TextTabProperties.cs
- TreeViewEvent.cs
- SmiMetaData.cs
- OleDbParameterCollection.cs
- ContainerVisual.cs
- ToolStrip.cs
- ValidatorCollection.cs
- UIElementAutomationPeer.cs
- IsolatedStorageException.cs
- CommandConverter.cs
- PreviewPrintController.cs
- DataGridViewUtilities.cs
- SerializationSectionGroup.cs
- TemplateXamlTreeBuilder.cs
- LineGeometry.cs
- DistributedTransactionPermission.cs
- MenuItem.cs
- Win32Exception.cs
- DefaultSerializationProviderAttribute.cs
- TrustLevelCollection.cs
- UnionCodeGroup.cs
- TextDecoration.cs
- DefaultBinder.cs
- XmlAttributeHolder.cs
- SrgsElementFactory.cs
- InvalidOperationException.cs
- PaginationProgressEventArgs.cs
- CatalogZoneAutoFormat.cs
- Lookup.cs
- Literal.cs
- ExpressionVisitor.cs
- UInt64Storage.cs
- SystemIcmpV4Statistics.cs
- TextEmbeddedObject.cs
- StructuredType.cs
- PanelStyle.cs
- GroupStyle.cs
- GlyphRun.cs
- LambdaCompiler.Expressions.cs
- KeyTimeConverter.cs
- AvTraceDetails.cs
- StaticSiteMapProvider.cs
- NativeStructs.cs
- TreeViewHitTestInfo.cs
- BitmapEffectDrawingContextState.cs
- XmlSchemaDatatype.cs
- TypeBuilder.cs
- DictionaryCustomTypeDescriptor.cs
- DefaultShape.cs
- RelationshipEndCollection.cs
- SerializationInfoEnumerator.cs
- ValidationPropertyAttribute.cs
- StringWriter.cs
- PathGeometry.cs
- Point4DValueSerializer.cs
- ToolboxComponentsCreatedEventArgs.cs
- DigitalSignature.cs
- XmlException.cs
- GPStream.cs
- LoginDesignerUtil.cs
- CompModSwitches.cs
- IISMapPath.cs
- NCryptNative.cs
- StringSorter.cs
- XdrBuilder.cs
- DeobfuscatingStream.cs
- DataServiceException.cs
- BindableTemplateBuilder.cs