Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / MessagePartSpecification.cs / 1 / MessagePartSpecification.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Security { using System.Xml; using System.ServiceModel.Channels; using System.ServiceModel; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Runtime.Serialization; public class MessagePartSpecification { ListheaderTypes; bool isBodyIncluded; bool isReadOnly; static MessagePartSpecification noParts; public ICollection HeaderTypes { get { if (headerTypes == null) { headerTypes = new List (); } if (isReadOnly) { return new ReadOnlyCollection (headerTypes); } else { return headerTypes; } } } internal bool HasHeaders { get { return this.headerTypes != null && this.headerTypes.Count > 0; } } public bool IsBodyIncluded { get { return this.isBodyIncluded; } set { if (isReadOnly) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ObjectIsReadOnly))); this.isBodyIncluded = value; } } public bool IsReadOnly { get { return this.isReadOnly; } } static public MessagePartSpecification NoParts { get { if (noParts == null) { MessagePartSpecification parts = new MessagePartSpecification(); parts.MakeReadOnly(); noParts = parts; } return noParts; } } public void Clear() { if (isReadOnly) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ObjectIsReadOnly))); if (this.headerTypes != null) this.headerTypes.Clear(); this.isBodyIncluded = false; } public void Union(MessagePartSpecification specification) { if (isReadOnly) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ObjectIsReadOnly))); if (specification == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("specification"); this.isBodyIncluded |= specification.IsBodyIncluded; List headerTypes = specification.headerTypes; if (headerTypes != null && headerTypes.Count > 0) { if (this.headerTypes == null) { this.headerTypes = new List (headerTypes.Count); } for (int i = 0; i < headerTypes.Count; i++) { XmlQualifiedName qname = headerTypes[i]; this.headerTypes.Add(qname); } } } public void MakeReadOnly() { if (isReadOnly) return; if (this.headerTypes != null) { List noDuplicates = new List (headerTypes.Count); for (int i = 0; i < headerTypes.Count; i++) { XmlQualifiedName qname = headerTypes[i]; if (qname != null) { bool include = true; for (int j = 0; j < noDuplicates.Count; j++) { XmlQualifiedName qname1 = noDuplicates[j]; if (qname.Name == qname1.Name && qname.Namespace == qname1.Namespace) { include = false; break; } } if (include) noDuplicates.Add(qname); } } this.headerTypes = noDuplicates; } this.isReadOnly = true; } public MessagePartSpecification() { // empty } public MessagePartSpecification(bool isBodyIncluded) { this.isBodyIncluded = isBodyIncluded; } public MessagePartSpecification(params XmlQualifiedName[] headerTypes) : this(false, headerTypes) { // empty } public MessagePartSpecification(bool isBodyIncluded, params XmlQualifiedName[] headerTypes) { this.isBodyIncluded = isBodyIncluded; if (headerTypes != null && headerTypes.Length > 0) { this.headerTypes = new List (headerTypes.Length); for (int i = 0; i < headerTypes.Length; i++) { this.headerTypes.Add(headerTypes[i]); } } } internal bool IsHeaderIncluded(MessageHeader header) { if (header == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("header"); return IsHeaderIncluded(header.Name, header.Namespace); } internal bool IsHeaderIncluded(string name, string ns) { if (name == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("name"); if (ns == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("ns"); if (this.headerTypes != null) { for (int i = 0; i < this.headerTypes.Count; i++) { XmlQualifiedName qname = this.headerTypes[i]; if (qname.Name == name && qname.Namespace == ns) { return true; } } } return false; } internal bool IsEmpty() { if (this.headerTypes != null && this.headerTypes.Count > 0) return false; return !this.IsBodyIncluded; } } } // 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
- OleDbDataAdapter.cs
- TypeConverterHelper.cs
- XpsManager.cs
- ConfigurationStrings.cs
- StandardBindingOptionalReliableSessionElement.cs
- Guid.cs
- documentation.cs
- SuppressIldasmAttribute.cs
- BorderSidesEditor.cs
- EntityDataSource.cs
- ElementFactory.cs
- DefaultValueTypeConverter.cs
- BamlLocalizabilityResolver.cs
- StickyNote.cs
- CallbackTimeoutsBehavior.cs
- DbConnectionStringCommon.cs
- IisTraceListener.cs
- CodeSubDirectory.cs
- TdsParserSessionPool.cs
- PlainXmlWriter.cs
- UrlPropertyAttribute.cs
- EncodingTable.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- ResourceSet.cs
- SafeTokenHandle.cs
- TextFormatterContext.cs
- HopperCache.cs
- WaitForChangedResult.cs
- RectangleConverter.cs
- PersianCalendar.cs
- IdentityModelStringsVersion1.cs
- Pen.cs
- MSAAWinEventWrap.cs
- DefaultEventAttribute.cs
- ThrowHelper.cs
- GlyphElement.cs
- FontWeight.cs
- XmlTextReaderImpl.cs
- ScalarConstant.cs
- AutomationPropertyInfo.cs
- CodeTypeConstructor.cs
- Rect.cs
- IxmlLineInfo.cs
- DirectoryRootQuery.cs
- SecurityUtils.cs
- InvokeMethod.cs
- OleDbDataAdapter.cs
- PropertyChangedEventManager.cs
- ConnectionStringSettingsCollection.cs
- ObjectNavigationPropertyMapping.cs
- TabControlCancelEvent.cs
- ExclusiveCanonicalizationTransform.cs
- StrongNameMembershipCondition.cs
- GAC.cs
- GeometryHitTestResult.cs
- ServiceMetadataPublishingElement.cs
- EventDescriptor.cs
- DebugHandleTracker.cs
- OdbcStatementHandle.cs
- MediaTimeline.cs
- PenThreadWorker.cs
- IFlowDocumentViewer.cs
- PageAdapter.cs
- CodeRegionDirective.cs
- Int32Collection.cs
- HtmlUtf8RawTextWriter.cs
- FaultCode.cs
- ConstraintStruct.cs
- WindowsFormsSynchronizationContext.cs
- DoubleUtil.cs
- BrowserCapabilitiesFactoryBase.cs
- XmlQualifiedName.cs
- ParentQuery.cs
- QueryInterceptorAttribute.cs
- ConfigErrorGlyph.cs
- FlowDocumentReaderAutomationPeer.cs
- COAUTHINFO.cs
- GuidTagList.cs
- EnumUnknown.cs
- COM2ExtendedUITypeEditor.cs
- RelationshipConstraintValidator.cs
- Logging.cs
- ControlEvent.cs
- XmlSchemaAnnotation.cs
- GlyphsSerializer.cs
- StateManagedCollection.cs
- PropertyTab.cs
- TimelineCollection.cs
- UriParserTemplates.cs
- SharedPersonalizationStateInfo.cs
- FactorySettingsElement.cs
- ValidationErrorEventArgs.cs
- DropShadowEffect.cs
- ErrorTolerantObjectWriter.cs
- RepeatBehavior.cs
- RelatedView.cs
- RectIndependentAnimationStorage.cs
- FormsAuthenticationConfiguration.cs
- PcmConverter.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs