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
- ComponentGuaranteesAttribute.cs
- SchemaElementLookUpTable.cs
- shaperfactoryquerycacheentry.cs
- ItemDragEvent.cs
- AppearanceEditorPart.cs
- SiblingIterators.cs
- DataContractSerializer.cs
- EditorPartChrome.cs
- SiteMapNodeItem.cs
- MethodImplAttribute.cs
- DataObjectFieldAttribute.cs
- Fault.cs
- RequestTimeoutManager.cs
- SimplePropertyEntry.cs
- PageThemeBuildProvider.cs
- QueryOperatorEnumerator.cs
- ValidationPropertyAttribute.cs
- PackageProperties.cs
- OciHandle.cs
- QilNode.cs
- BuildProviderAppliesToAttribute.cs
- RectIndependentAnimationStorage.cs
- EnvironmentPermission.cs
- WebPartConnectionsConfigureVerb.cs
- EventLogInformation.cs
- TextOutput.cs
- CachedBitmap.cs
- GetPolicyDetailsRequest.cs
- ToolTip.cs
- EmptyStringExpandableObjectConverter.cs
- Opcode.cs
- SecurityDocument.cs
- System.Data_BID.cs
- HostUtils.cs
- tabpagecollectioneditor.cs
- SqlDataSourceSummaryPanel.cs
- SqlDependencyUtils.cs
- KeyEventArgs.cs
- PreviewKeyDownEventArgs.cs
- ThreadBehavior.cs
- ConditionedDesigner.cs
- PolicyManager.cs
- BulletChrome.cs
- TableRowCollection.cs
- PagedControl.cs
- ManagementBaseObject.cs
- WindowProviderWrapper.cs
- EnumDataContract.cs
- TimeManager.cs
- FilterQueryOptionExpression.cs
- XmlNode.cs
- UnknownBitmapEncoder.cs
- HttpCacheVaryByContentEncodings.cs
- JsonFormatMapping.cs
- NetCodeGroup.cs
- ReferenceConverter.cs
- CfgParser.cs
- _ChunkParse.cs
- Int64AnimationBase.cs
- EventBookmark.cs
- ToolStripSplitButton.cs
- Win32Interop.cs
- BaseParser.cs
- StylusOverProperty.cs
- SemanticValue.cs
- SplayTreeNode.cs
- MenuItemCollectionEditorDialog.cs
- AssemblyName.cs
- XmlElementAttributes.cs
- QuaternionAnimation.cs
- EventMappingSettings.cs
- CodeDirectionExpression.cs
- XmlWrappingReader.cs
- MulticastNotSupportedException.cs
- SynchronizingStream.cs
- TargetException.cs
- EntityDescriptor.cs
- DataTrigger.cs
- CreateUserWizard.cs
- UserPreferenceChangingEventArgs.cs
- WorkflowHostingEndpoint.cs
- FrameworkContentElement.cs
- TransformDescriptor.cs
- RealProxy.cs
- ChtmlFormAdapter.cs
- CodeMemberMethod.cs
- IpcClientManager.cs
- PermissionSet.cs
- RealizationDrawingContextWalker.cs
- TypedServiceChannelBuilder.cs
- HatchBrush.cs
- FrameworkPropertyMetadata.cs
- VirtualizingPanel.cs
- QuarticEase.cs
- HttpListenerRequest.cs
- ToolTipService.cs
- MetadataImporterQuotas.cs
- ConnectionStringSettings.cs
- PKCS1MaskGenerationMethod.cs
- IISUnsafeMethods.cs