Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / ServiceModel / Dispatcher / MultiplexingFormatMapping.cs / 1305376 / MultiplexingFormatMapping.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System.Net.Mime; using System.ServiceModel.Channels; using System.ServiceModel.Web; using System.Text; abstract class MultiplexingFormatMapping { protected Encoding writeEncoding; protected string writeCharset; protected WebContentTypeMapper contentTypeMapper; abstract public WebMessageFormat MessageFormat { get; } abstract public WebContentFormat ContentFormat { get; } abstract public string DefaultMediaType { get; } abstract protected MessageEncoder Encoder { get; } ContentType defaultContentType; public ContentType DefaultContentType { get { if (defaultContentType == null) { defaultContentType = new ContentType(this.DefaultMediaType) { CharSet = this.writeCharset }; } return defaultContentType; } } public MultiplexingFormatMapping(Encoding writeEncoding, WebContentTypeMapper contentTypeMapper) { if (writeEncoding == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("writeEncoding"); } this.writeEncoding = writeEncoding; this.writeCharset = TextEncoderDefaults.EncodingToCharSet(writeEncoding); this.contentTypeMapper = contentTypeMapper; } public bool CanFormatResponse(ContentType acceptHeaderElement, bool matchCharset, out ContentType contentType) { if (acceptHeaderElement == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("acceptHeaderElement"); } // Scrub the content type so that it is only mediaType and the charset string charset = acceptHeaderElement.CharSet; contentType = new ContentType(acceptHeaderElement.MediaType); contentType.CharSet = this.DefaultContentType.CharSet; string contentTypeStr = contentType.ToString(); if (matchCharset && !string.IsNullOrEmpty(charset) && !string.Equals(charset, this.DefaultContentType.CharSet, StringComparison.OrdinalIgnoreCase)) { return false; } if (this.contentTypeMapper != null && this.contentTypeMapper.GetMessageFormatForContentType(contentType.MediaType) == this.ContentFormat) { return true; } if (this.Encoder.IsContentTypeSupported(contentTypeStr) && (charset == null || contentType.CharSet == this.DefaultContentType.CharSet)) { return true; } contentType = null; 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
- WebPartConnectionsConfigureVerb.cs
- ForEachAction.cs
- AccessorTable.cs
- ApplicationDirectoryMembershipCondition.cs
- TriState.cs
- WindowsGraphics2.cs
- TimeStampChecker.cs
- CodeStatement.cs
- SqlOuterApplyReducer.cs
- EdmProperty.cs
- InstanceDescriptor.cs
- KeyEvent.cs
- CircleEase.cs
- PanelDesigner.cs
- CommonEndpointBehaviorElement.cs
- PreviewPrintController.cs
- RequiredFieldValidator.cs
- TextRunTypographyProperties.cs
- ConfigurationException.cs
- ObjectToIdCache.cs
- WebScriptMetadataFormatter.cs
- PseudoWebRequest.cs
- RawStylusInputCustomData.cs
- HwndSubclass.cs
- MembershipPasswordException.cs
- TypeTypeConverter.cs
- FormViewPagerRow.cs
- FileDialog.cs
- EntityDataSourceContextCreatedEventArgs.cs
- ToolStripSeparatorRenderEventArgs.cs
- ThreadPool.cs
- UnmanagedMemoryStreamWrapper.cs
- DurableInstance.cs
- GPPOINT.cs
- URI.cs
- DataGridHyperlinkColumn.cs
- CustomCredentialPolicy.cs
- PeerNode.cs
- DynamicValueConverter.cs
- ImageMapEventArgs.cs
- Vector3D.cs
- ClientTargetSection.cs
- TransactionInformation.cs
- MobileSysDescriptionAttribute.cs
- BindToObject.cs
- BaseDataListDesigner.cs
- TdsValueSetter.cs
- ListView.cs
- RelatedView.cs
- Tuple.cs
- SiteMapNodeCollection.cs
- TransactedBatchingElement.cs
- LazyTextWriterCreator.cs
- DataServiceContext.cs
- FlowLayoutPanel.cs
- MissingFieldException.cs
- ColumnWidthChangingEvent.cs
- MultipleViewPattern.cs
- DbDeleteCommandTree.cs
- CaseInsensitiveHashCodeProvider.cs
- LayoutSettings.cs
- TextSegment.cs
- LiteralLink.cs
- AssemblyNameUtility.cs
- JoinTreeSlot.cs
- SoapAttributeOverrides.cs
- IntellisenseTextBox.designer.cs
- PlainXmlSerializer.cs
- PhonemeConverter.cs
- SystemWebCachingSectionGroup.cs
- HandleCollector.cs
- XmlCharCheckingReader.cs
- BroadcastEventHelper.cs
- AuthenticationSection.cs
- PreProcessInputEventArgs.cs
- CacheMode.cs
- AnimationLayer.cs
- storagemappingitemcollection.viewdictionary.cs
- SqlCharStream.cs
- StaticSiteMapProvider.cs
- SystemInfo.cs
- Color.cs
- StorageTypeMapping.cs
- XMLSyntaxException.cs
- PackWebRequestFactory.cs
- XamlDesignerSerializationManager.cs
- InProcStateClientManager.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- Clock.cs
- WindowsBrush.cs
- NameGenerator.cs
- WebResourceAttribute.cs
- ThreadStateException.cs
- GroupBox.cs
- WSHttpSecurityElement.cs
- DispatcherTimer.cs
- TextTrailingCharacterEllipsis.cs
- HtmlButton.cs
- DesignSurfaceCollection.cs
- TemplatedMailWebEventProvider.cs