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
- OleDbPropertySetGuid.cs
- PropertyDescriptorComparer.cs
- HttpCapabilitiesEvaluator.cs
- MobileComponentEditorPage.cs
- ErrorWebPart.cs
- BinarySerializer.cs
- DeploymentSection.cs
- Membership.cs
- BoolExpression.cs
- DbDataSourceEnumerator.cs
- Atom10ItemFormatter.cs
- InstalledFontCollection.cs
- WebConfigManager.cs
- DBCSCodePageEncoding.cs
- UnsupportedPolicyOptionsException.cs
- DropDownList.cs
- SqlBinder.cs
- ImportStoreException.cs
- FileRecordSequence.cs
- X509Certificate2.cs
- WindowsSecurityTokenAuthenticator.cs
- StringCollection.cs
- PerfCounterSection.cs
- CodeDirectoryCompiler.cs
- ResourceWriter.cs
- storepermission.cs
- RSAPKCS1KeyExchangeFormatter.cs
- WmpBitmapEncoder.cs
- AlignmentXValidation.cs
- StorageEntitySetMapping.cs
- WindowClosedEventArgs.cs
- NetMsmqBindingCollectionElement.cs
- WindowsSpinner.cs
- RandomNumberGenerator.cs
- GenericPrincipal.cs
- _ConnectionGroup.cs
- ExpressionBindings.cs
- _CacheStreams.cs
- XmlWrappingWriter.cs
- ObjectDisposedException.cs
- ResourceProperty.cs
- NCryptNative.cs
- PageAdapter.cs
- PathSegment.cs
- XmlDataContract.cs
- SecurityManager.cs
- SqlCacheDependency.cs
- ObjectDesignerDataSourceView.cs
- Material.cs
- BufferModesCollection.cs
- InfiniteIntConverter.cs
- DbProviderFactory.cs
- TableCellAutomationPeer.cs
- DbMetaDataFactory.cs
- EditorPartChrome.cs
- peernodestatemanager.cs
- keycontainerpermission.cs
- OutputScopeManager.cs
- MenuStrip.cs
- FixedSOMTable.cs
- _SslState.cs
- RotationValidation.cs
- AQNBuilder.cs
- HtmlGenericControl.cs
- VBCodeProvider.cs
- XmlIterators.cs
- XmlCollation.cs
- DataGridViewTextBoxEditingControl.cs
- InternalEnumValidatorAttribute.cs
- OleDbError.cs
- RootBrowserWindow.cs
- TileBrush.cs
- Validator.cs
- ChtmlImageAdapter.cs
- SqlTypesSchemaImporter.cs
- SelectionChangedEventArgs.cs
- ReadOnlyDataSourceView.cs
- Merger.cs
- DataSourceCache.cs
- HyperLinkColumn.cs
- DrawingGroupDrawingContext.cs
- SkinIDTypeConverter.cs
- ValueChangedEventManager.cs
- LinkDescriptor.cs
- ClientScriptManagerWrapper.cs
- StringUtil.cs
- CanonicalFontFamilyReference.cs
- translator.cs
- PinnedBufferMemoryStream.cs
- ValidationErrorCollection.cs
- RectKeyFrameCollection.cs
- CodeTypeReferenceCollection.cs
- DeploymentSectionCache.cs
- EndOfStreamException.cs
- InstanceLockedException.cs
- Enum.cs
- HttpConfigurationSystem.cs
- HelpInfo.cs
- RuleAction.cs
- NegotiationTokenProvider.cs