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
- ResolveCriteria11.cs
- VisualBrush.cs
- XmlFormatWriterGenerator.cs
- LogicalCallContext.cs
- ApplicationActivator.cs
- DropDownButton.cs
- ArrayElementGridEntry.cs
- MailSettingsSection.cs
- QueryComponents.cs
- OSFeature.cs
- TextEffectResolver.cs
- SqlWebEventProvider.cs
- ProgressChangedEventArgs.cs
- RIPEMD160.cs
- DesignerSerializationOptionsAttribute.cs
- CryptoApi.cs
- DesignerFrame.cs
- PropertiesTab.cs
- QilCloneVisitor.cs
- FileInfo.cs
- LongMinMaxAggregationOperator.cs
- serverconfig.cs
- DataExpression.cs
- StaticContext.cs
- DNS.cs
- CommonGetThemePartSize.cs
- XmlnsCompatibleWithAttribute.cs
- CompositeCollectionView.cs
- DrawingVisual.cs
- CodeAttributeDeclarationCollection.cs
- ToolStripAdornerWindowService.cs
- SendingRequestEventArgs.cs
- LineServicesRun.cs
- ListViewItemSelectionChangedEvent.cs
- SingleObjectCollection.cs
- SoapSchemaImporter.cs
- ProfileSettingsCollection.cs
- MemoryPressure.cs
- SQLInt16.cs
- XPathNodeInfoAtom.cs
- RepeatBehaviorConverter.cs
- PersonalizationStateQuery.cs
- RequestTimeoutManager.cs
- Barrier.cs
- RuleConditionDialog.cs
- XPathCompileException.cs
- SingleSelectRootGridEntry.cs
- WindowsIPAddress.cs
- cookieexception.cs
- StreamWithDictionary.cs
- SyndicationSerializer.cs
- RequestCacheManager.cs
- ResourceReferenceKeyNotFoundException.cs
- StorageRoot.cs
- BamlReader.cs
- ExpandSegment.cs
- ILGenerator.cs
- IncrementalHitTester.cs
- XmlTextReader.cs
- SerialErrors.cs
- HttpStreamXmlDictionaryReader.cs
- SoapFormatter.cs
- KeyInfo.cs
- TagPrefixAttribute.cs
- OperationCanceledException.cs
- DesignerDataRelationship.cs
- FragmentQueryProcessor.cs
- OdbcEnvironment.cs
- MimeMapping.cs
- MatchSingleFxEngineOpcode.cs
- QilStrConcat.cs
- QilInvokeEarlyBound.cs
- Msmq.cs
- RequestQueue.cs
- DefaultBindingPropertyAttribute.cs
- PartitionResolver.cs
- ImportCatalogPart.cs
- Regex.cs
- ZipIOExtraFieldZip64Element.cs
- SoapEnumAttribute.cs
- QuaternionAnimation.cs
- IRCollection.cs
- ByteConverter.cs
- FormsAuthenticationEventArgs.cs
- SafeNativeMethodsMilCoreApi.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- CommonEndpointBehaviorElement.cs
- DataGridViewCheckBoxColumn.cs
- XmlComplianceUtil.cs
- RandomNumberGenerator.cs
- CustomActivityDesigner.cs
- GlyphsSerializer.cs
- MethodToken.cs
- PageHandlerFactory.cs
- XmlElement.cs
- SqlUtil.cs
- DocumentManager.cs
- ScaleTransform.cs
- IndexingContentUnit.cs
- HtmlTableRowCollection.cs