Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / ServiceModel / Channels / JavascriptXmlWriterWrapper.cs / 1305376 / JavascriptXmlWriterWrapper.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.Globalization; using System.IO; using System.Text; using System.Xml; class JavascriptXmlWriterWrapper : XmlDictionaryWriter { Encoding encoding; Stream stream; XmlDictionaryWriter xmlJsonWriter; byte[] encodedClosingFunctionCall; public JavascriptXmlWriterWrapper(Encoding encoding) { this.encoding = encoding; this.encodedClosingFunctionCall = this.encoding.GetBytes(");"); } public JavascriptCallbackResponseMessageProperty JavascriptResponseMessageProperty { get; set; } public XmlDictionaryWriter XmlJsonWriter { get { return this.xmlJsonWriter; } } public override void Close() { this.xmlJsonWriter.Close(); } public override void Flush() { this.xmlJsonWriter.Flush(); } public override string LookupPrefix(string ns) { return this.xmlJsonWriter.LookupPrefix(ns); } public override void WriteBase64(byte[] buffer, int index, int count) { this.xmlJsonWriter.WriteBase64(buffer, index, count); } public override void WriteCData(string text) { this.xmlJsonWriter.WriteCData(text); } public override void WriteCharEntity(char ch) { this.xmlJsonWriter.WriteCharEntity(ch); } public override void WriteChars(char[] buffer, int index, int count) { this.xmlJsonWriter.WriteChars(buffer, index, count); } public override void WriteComment(string text) { this.xmlJsonWriter.WriteComment(text); } public override void WriteDocType(string name, string pubid, string sysid, string subset) { this.xmlJsonWriter.WriteDocType(name, pubid, sysid, subset); } public override void WriteEndAttribute() { this.xmlJsonWriter.WriteEndAttribute(); } public override void WriteEndDocument() { this.xmlJsonWriter.WriteEndDocument(); if (this.JavascriptResponseMessageProperty != null && !String.IsNullOrEmpty(this.JavascriptResponseMessageProperty.CallbackFunctionName)) { this.xmlJsonWriter.Flush(); if (this.JavascriptResponseMessageProperty.StatusCode != null && (int)this.JavascriptResponseMessageProperty.StatusCode != 200) { byte[] buffer = this.encoding.GetBytes(String.Format(CultureInfo.InvariantCulture, ",{0}", (int)this.JavascriptResponseMessageProperty.StatusCode)); this.stream.Write(buffer, 0, buffer.Length); } this.stream.Write(this.encodedClosingFunctionCall, 0, this.encodedClosingFunctionCall.Length); } } public override void WriteEndElement() { this.xmlJsonWriter.WriteEndElement(); } public override void WriteEntityRef(string name) { this.xmlJsonWriter.WriteEntityRef(name); } public override void WriteFullEndElement() { this.xmlJsonWriter.WriteFullEndElement(); } public override void WriteProcessingInstruction(string name, string text) { this.xmlJsonWriter.WriteProcessingInstruction(name, text); } public override void WriteRaw(string data) { this.xmlJsonWriter.WriteRaw(data); } public override void WriteRaw(char[] buffer, int index, int count) { this.xmlJsonWriter.WriteRaw(buffer, index, count); } public override void WriteStartAttribute(string prefix, string localName, string ns) { this.xmlJsonWriter.WriteStartAttribute(prefix, localName, ns); } public override void WriteStartDocument(bool standalone) { StartJsonMessage(); this.xmlJsonWriter.WriteStartDocument(standalone); } public override void WriteStartDocument() { StartJsonMessage(); this.xmlJsonWriter.WriteStartDocument(); } void StartJsonMessage() { if (this.JavascriptResponseMessageProperty != null && !String.IsNullOrEmpty(this.JavascriptResponseMessageProperty.CallbackFunctionName)) { byte[] buffer = this.encoding.GetBytes(String.Format(CultureInfo.InvariantCulture, "{0}(", this.JavascriptResponseMessageProperty.CallbackFunctionName)); this.stream.Write(buffer,0,buffer.Length); } } public override void WriteStartElement(string prefix, string localName, string ns) { this.xmlJsonWriter.WriteStartElement(prefix, localName, ns); } public override WriteState WriteState { get { return this.xmlJsonWriter.WriteState; } } public override void WriteString(string text) { this.xmlJsonWriter.WriteString(text); } public override void WriteSurrogateCharEntity(char lowChar, char highChar) { this.xmlJsonWriter.WriteSurrogateCharEntity(lowChar, highChar); } public override void WriteWhitespace(string ws) { this.xmlJsonWriter.WriteWhitespace(ws); } public void SetOutput(Stream stream, XmlDictionaryWriter writer) { this.stream = stream; this.xmlJsonWriter = writer; } } } // 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
- CachedRequestParams.cs
- PageStatePersister.cs
- ShaderRenderModeValidation.cs
- SqlConnectionStringBuilder.cs
- ObjectDataSourceFilteringEventArgs.cs
- ExceptionNotification.cs
- XmlCharCheckingWriter.cs
- LoopExpression.cs
- DataRecordObjectView.cs
- ParameterCollection.cs
- Drawing.cs
- TextDecorationCollectionConverter.cs
- MachineKeyConverter.cs
- Vector3D.cs
- IdentifierService.cs
- TypeResolver.cs
- ProfilePropertySettingsCollection.cs
- DescriptionAttribute.cs
- DynamicILGenerator.cs
- EncryptedKey.cs
- GridViewSortEventArgs.cs
- WebPartManagerDesigner.cs
- DateTimeFormatInfo.cs
- RoutedUICommand.cs
- XmlSchemaSimpleContent.cs
- ExpandButtonVisibilityConverter.cs
- ColumnHeader.cs
- AsynchronousChannelMergeEnumerator.cs
- WebPartZoneBase.cs
- ChannelDispatcherCollection.cs
- DesignerSerializerAttribute.cs
- AutoSizeToolBoxItem.cs
- SerializationInfoEnumerator.cs
- CodeNamespaceImport.cs
- CellConstant.cs
- Hash.cs
- SQLDecimal.cs
- DataTrigger.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- DummyDataSource.cs
- ToolstripProfessionalRenderer.cs
- SystemBrushes.cs
- TreeNodeStyle.cs
- StaticSiteMapProvider.cs
- StreamInfo.cs
- RequestCachePolicy.cs
- SimpleMailWebEventProvider.cs
- IdentityModelStringsVersion1.cs
- Guid.cs
- RoutingExtension.cs
- DataObjectEventArgs.cs
- MimeFormReflector.cs
- OdbcStatementHandle.cs
- IListConverters.cs
- ClockGroup.cs
- ToolStripMenuItem.cs
- externdll.cs
- CookielessHelper.cs
- QuaternionAnimation.cs
- DtcInterfaces.cs
- ServerType.cs
- SynchronizationFilter.cs
- Border.cs
- IntSecurity.cs
- HebrewCalendar.cs
- HyperLinkStyle.cs
- QuotedPrintableStream.cs
- DataGridViewRow.cs
- DbException.cs
- ScriptControlManager.cs
- IntegrationExceptionEventArgs.cs
- TheQuery.cs
- DefaultBinder.cs
- DetailsViewPageEventArgs.cs
- GlobalizationSection.cs
- SQLBytesStorage.cs
- ADMembershipUser.cs
- DataServicePagingProviderWrapper.cs
- DebugView.cs
- ViewgenGatekeeper.cs
- Int16KeyFrameCollection.cs
- SHA256CryptoServiceProvider.cs
- ContextStaticAttribute.cs
- FrameDimension.cs
- Preprocessor.cs
- SqlBooleanMismatchVisitor.cs
- WebHttpBehavior.cs
- _ScatterGatherBuffers.cs
- Assembly.cs
- DesignerDataStoredProcedure.cs
- XmlUtf8RawTextWriter.cs
- EditorBrowsableAttribute.cs
- DesigntimeLicenseContextSerializer.cs
- SafeNativeMethods.cs
- TransformerTypeCollection.cs
- SizeF.cs
- InputReportEventArgs.cs
- ButtonChrome.cs
- HuffCodec.cs
- CssTextWriter.cs