Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / ServiceModel / Dispatcher / ContentTypeSettingDispatchMessageFormatter.cs / 1 / ContentTypeSettingDispatchMessageFormatter.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System.Collections; using System.ServiceModel.Channels; using System.ServiceModel; using System.ServiceModel.Description; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Reflection; using System.Xml; using System.ServiceModel.Diagnostics; using System.Net; using System.ServiceModel.Web; class ContentTypeSettingDispatchMessageFormatter : IDispatchMessageFormatter { IDispatchMessageFormatter innerFormatter; string outgoingContentType; public ContentTypeSettingDispatchMessageFormatter(string outgoingContentType, IDispatchMessageFormatter innerFormatter) { if (outgoingContentType == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("outgoingContentType"); } if (innerFormatter == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("innerFormatter"); } this.outgoingContentType = outgoingContentType; this.innerFormatter = innerFormatter; } public void DeserializeRequest(Message message, object[] parameters) { this.innerFormatter.DeserializeRequest(message, parameters); } public Message SerializeReply(MessageVersion messageVersion, object[] parameters, object result) { Message message = this.innerFormatter.SerializeReply(messageVersion, parameters, result); if (message != null) { AddResponseContentTypeProperty(message, this.outgoingContentType); } return message; } static void AddResponseContentTypeProperty(Message message, string contentType) { if (message == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message"); } if (contentType == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("contentType"); } if (OperationContext.Current != null && OperationContext.Current.HasOutgoingMessageProperties) { if (string.IsNullOrEmpty(WebOperationContext.Current.OutgoingResponse.ContentType)) { WebOperationContext.Current.OutgoingResponse.ContentType = contentType; } } else { object prop; message.Properties.TryGetValue(HttpResponseMessageProperty.Name, out prop); HttpResponseMessageProperty httpProperty; if (prop != null) { httpProperty = (HttpResponseMessageProperty) prop; } else { httpProperty = new HttpResponseMessageProperty(); message.Properties.Add(HttpResponseMessageProperty.Name, httpProperty); } if (string.IsNullOrEmpty(httpProperty.Headers[HttpResponseHeader.ContentType])) { httpProperty.Headers[HttpResponseHeader.ContentType] = contentType; } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ValueQuery.cs
- EditingCommands.cs
- TreeBuilderBamlTranslator.cs
- AsyncResult.cs
- ComponentEditorForm.cs
- LicenseContext.cs
- Bits.cs
- HttpProfileGroupBase.cs
- TokenBasedSetEnumerator.cs
- XmlDataSourceNodeDescriptor.cs
- PrintPreviewGraphics.cs
- SmtpDigestAuthenticationModule.cs
- ConsoleCancelEventArgs.cs
- InternalRelationshipCollection.cs
- FunctionNode.cs
- ResourcesChangeInfo.cs
- Int64AnimationBase.cs
- MenuAdapter.cs
- ItemContainerGenerator.cs
- FieldBuilder.cs
- PermissionSet.cs
- PerfCounterSection.cs
- CornerRadiusConverter.cs
- PixelFormatConverter.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- CapabilitiesSection.cs
- RoleManagerEventArgs.cs
- TemplateBindingExtension.cs
- OptimizedTemplateContentHelper.cs
- PathFigureCollection.cs
- FixedLineResult.cs
- XmlILIndex.cs
- ContourSegment.cs
- Win32SafeHandles.cs
- RouteValueExpressionBuilder.cs
- ManagementBaseObject.cs
- Evaluator.cs
- WSSecureConversation.cs
- TypeToken.cs
- RegexInterpreter.cs
- Soap12ServerProtocol.cs
- RelationshipSet.cs
- TextTreeText.cs
- SQLGuid.cs
- SqlCaseSimplifier.cs
- SoapHeaders.cs
- Interfaces.cs
- Compiler.cs
- TheQuery.cs
- GiveFeedbackEvent.cs
- TextEditorCopyPaste.cs
- TextViewSelectionProcessor.cs
- EntitySetBaseCollection.cs
- SystemIPInterfaceStatistics.cs
- StringOutput.cs
- EditorAttributeInfo.cs
- FrameworkRichTextComposition.cs
- SrgsRuleRef.cs
- CodeLinePragma.cs
- TrustLevel.cs
- TextContainer.cs
- ComponentEditorPage.cs
- XsltLibrary.cs
- ArraySubsetEnumerator.cs
- InternalTypeHelper.cs
- QueryExecutionOption.cs
- XsdBuildProvider.cs
- HttpUnhandledOperationInvoker.cs
- NodeFunctions.cs
- ConfigXmlSignificantWhitespace.cs
- Pts.cs
- LinqDataSourceUpdateEventArgs.cs
- PropertyInformation.cs
- ICspAsymmetricAlgorithm.cs
- Pair.cs
- CodeMemberMethod.cs
- Ray3DHitTestResult.cs
- SettingsPropertyValueCollection.cs
- SimpleParser.cs
- EntityDataSourceViewSchema.cs
- EUCJPEncoding.cs
- TextEditorSelection.cs
- TimeSpan.cs
- DecimalStorage.cs
- CopyAttributesAction.cs
- TextTreeInsertElementUndoUnit.cs
- ConfigurationValidatorBase.cs
- PointAnimationBase.cs
- ToolStripDropDownDesigner.cs
- ChoiceConverter.cs
- RegexStringValidator.cs
- MenuCommandsChangedEventArgs.cs
- TreeView.cs
- FrameworkElementFactoryMarkupObject.cs
- StyleCollection.cs
- GeometryDrawing.cs
- FilterUserControlBase.cs
- DataGridItem.cs
- HTTPNotFoundHandler.cs
- HashCodeCombiner.cs