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
- NetworkStream.cs
- CategoryEditor.cs
- MultiTrigger.cs
- DataContractSerializerMessageContractImporter.cs
- Errors.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- WebPartMenu.cs
- RuntimeHandles.cs
- NeedSkipTokenVisitor.cs
- LostFocusEventManager.cs
- XmlQueryCardinality.cs
- CallContext.cs
- PathData.cs
- TcpProcessProtocolHandler.cs
- RealizationDrawingContextWalker.cs
- PhysicalFontFamily.cs
- path.cs
- JsonEncodingStreamWrapper.cs
- JsonGlobals.cs
- XmlSiteMapProvider.cs
- _FtpControlStream.cs
- ListViewDesigner.cs
- XmlChoiceIdentifierAttribute.cs
- XmlSchemaComplexContent.cs
- AssemblyInfo.cs
- Int32Animation.cs
- PointF.cs
- EventQueueState.cs
- ThreadPool.cs
- SurrogateEncoder.cs
- OdbcCommand.cs
- ResponseStream.cs
- XamlInt32CollectionSerializer.cs
- SqlProviderUtilities.cs
- XmlnsDefinitionAttribute.cs
- SchemaImporterExtensionsSection.cs
- FixedPosition.cs
- SecurityUtils.cs
- UserControlFileEditor.cs
- RIPEMD160Managed.cs
- ConstrainedDataObject.cs
- BidOverLoads.cs
- StoragePropertyMapping.cs
- PropertyInformation.cs
- UriScheme.cs
- BufferedWebEventProvider.cs
- InternalBase.cs
- NonParentingControl.cs
- odbcmetadatacollectionnames.cs
- ArraySortHelper.cs
- Function.cs
- ContentType.cs
- QuadTree.cs
- SecurityHelper.cs
- BooleanAnimationUsingKeyFrames.cs
- LinearGradientBrush.cs
- OdbcEnvironmentHandle.cs
- DetailsViewInsertEventArgs.cs
- ProviderBase.cs
- StaticSiteMapProvider.cs
- Soap12FormatExtensions.cs
- XmlILAnnotation.cs
- SpanIndex.cs
- WebPartEventArgs.cs
- _OSSOCK.cs
- ReflectionUtil.cs
- ConditionalAttribute.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- PassportIdentity.cs
- TextUtf8RawTextWriter.cs
- QueryAccessibilityHelpEvent.cs
- StreamInfo.cs
- HoistedLocals.cs
- SpellerStatusTable.cs
- ProjectedWrapper.cs
- Dictionary.cs
- mediaclock.cs
- SpellerInterop.cs
- AliasedExpr.cs
- FormViewUpdateEventArgs.cs
- versioninfo.cs
- CodePropertyReferenceExpression.cs
- TransformerInfo.cs
- HttpCachePolicy.cs
- SpeakProgressEventArgs.cs
- IisTraceListener.cs
- WebBrowserNavigatedEventHandler.cs
- ControlValuePropertyAttribute.cs
- KnownTypes.cs
- ResXResourceReader.cs
- CodeDirectionExpression.cs
- TagPrefixInfo.cs
- SafeHandles.cs
- SslStream.cs
- baseaxisquery.cs
- HybridObjectCache.cs
- DataGridViewCellCollection.cs
- ApplicationContext.cs
- AssemblyFilter.cs
- SHA256CryptoServiceProvider.cs