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
- OracleTransaction.cs
- sqlmetadatafactory.cs
- XmlSchemaSimpleContentExtension.cs
- Compress.cs
- UrlMappingsModule.cs
- InkCanvas.cs
- X509Extension.cs
- AspCompat.cs
- LineSegment.cs
- XPathScanner.cs
- ToolStripDropTargetManager.cs
- HtmlInputText.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- ToolStripStatusLabel.cs
- AttachInfo.cs
- RewritingProcessor.cs
- ObjectStateEntryDbDataRecord.cs
- InitializationEventAttribute.cs
- ConfigurationStrings.cs
- StringWriter.cs
- XmlAttributeCollection.cs
- Selection.cs
- HostVisual.cs
- DocumentOrderComparer.cs
- LogArchiveSnapshot.cs
- FixedDSBuilder.cs
- XmlSchemaSimpleTypeUnion.cs
- ConnectionPoint.cs
- WindowProviderWrapper.cs
- ListBoxItemWrapperAutomationPeer.cs
- RequestNavigateEventArgs.cs
- ExtentJoinTreeNode.cs
- CollectionView.cs
- smtpconnection.cs
- GenericTypeParameterConverter.cs
- DataDocumentXPathNavigator.cs
- PreservationFileWriter.cs
- LinkLabel.cs
- CursorConverter.cs
- IsolationInterop.cs
- MD5.cs
- DataGridDesigner.cs
- EntryWrittenEventArgs.cs
- EntryPointNotFoundException.cs
- HttpModulesSection.cs
- MultipleViewPatternIdentifiers.cs
- CircleHotSpot.cs
- ValueSerializer.cs
- StorageRoot.cs
- FigureHelper.cs
- ReferenceEqualityComparer.cs
- HostProtectionException.cs
- ResponseStream.cs
- SelectingProviderEventArgs.cs
- Pair.cs
- PassportAuthenticationModule.cs
- WebServiceReceiveDesigner.cs
- KeyValueConfigurationElement.cs
- DataGridViewLayoutData.cs
- StringAttributeCollection.cs
- SchemaObjectWriter.cs
- OracleString.cs
- DetailsViewUpdateEventArgs.cs
- EntityConnection.cs
- SynchronizationValidator.cs
- SafeProcessHandle.cs
- SoundPlayerAction.cs
- Control.cs
- Rules.cs
- StringCollection.cs
- SiteOfOriginContainer.cs
- RemoteWebConfigurationHostServer.cs
- MethodMessage.cs
- DeclaredTypeElementCollection.cs
- GridViewDeleteEventArgs.cs
- TemplateControlParser.cs
- UnsafeNativeMethodsCLR.cs
- AtomServiceDocumentSerializer.cs
- ImplicitInputBrush.cs
- Logging.cs
- DbParameterHelper.cs
- SvcMapFileSerializer.cs
- TextEditorCopyPaste.cs
- DataGridViewCellStyle.cs
- SimpleTypeResolver.cs
- XmlValidatingReaderImpl.cs
- WsatServiceAddress.cs
- HttpException.cs
- ServicePointManagerElement.cs
- SmtpDigestAuthenticationModule.cs
- LogLogRecordEnumerator.cs
- HttpRequest.cs
- ScrollData.cs
- UpdateProgress.cs
- WindowsFormsHostAutomationPeer.cs
- CombinedGeometry.cs
- TrayIconDesigner.cs
- DataDocumentXPathNavigator.cs
- ProtocolsConfigurationHandler.cs
- translator.cs