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
- CapabilitiesRule.cs
- InputMethodStateTypeInfo.cs
- OracleNumber.cs
- mil_sdk_version.cs
- CriticalFinalizerObject.cs
- SizeKeyFrameCollection.cs
- SmiXetterAccessMap.cs
- Expander.cs
- JournalEntryListConverter.cs
- Version.cs
- TextBoxView.cs
- EncryptedReference.cs
- SimpleHandlerBuildProvider.cs
- AssemblyAssociatedContentFileAttribute.cs
- DependencyStoreSurrogate.cs
- sapiproxy.cs
- StyleSheetRefUrlEditor.cs
- COAUTHIDENTITY.cs
- MethodBuilderInstantiation.cs
- TextContainer.cs
- ServicePointManagerElement.cs
- UIElementPropertyUndoUnit.cs
- RepeatButtonAutomationPeer.cs
- ClockGroup.cs
- ImageDrawing.cs
- BooleanFunctions.cs
- CorrelationScope.cs
- SessionPageStatePersister.cs
- HttpDigestClientCredential.cs
- unsafenativemethodsother.cs
- Rijndael.cs
- DecimalConverter.cs
- ClipboardProcessor.cs
- BasePattern.cs
- AutomationElementIdentifiers.cs
- CellLabel.cs
- MexHttpsBindingElement.cs
- SqlCommand.cs
- OutputCacheProfile.cs
- SQLInt16Storage.cs
- XamlSerializerUtil.cs
- UnsafeNativeMethods.cs
- SafeLocalMemHandle.cs
- FacetValueContainer.cs
- SchemaElement.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- PnrpPeerResolverBindingElement.cs
- AnnotationAuthorChangedEventArgs.cs
- TargetConverter.cs
- FileChangesMonitor.cs
- ServiceInfoCollection.cs
- ResourceDescriptionAttribute.cs
- EventDescriptor.cs
- ObjectDataSourceEventArgs.cs
- ClientSettingsSection.cs
- DataRowChangeEvent.cs
- XamlReaderHelper.cs
- HotSpotCollectionEditor.cs
- ParserHooks.cs
- Vector3DAnimationBase.cs
- ColumnProvider.cs
- CodeSnippetTypeMember.cs
- APCustomTypeDescriptor.cs
- FormsIdentity.cs
- TabItemAutomationPeer.cs
- IteratorDescriptor.cs
- TCEAdapterGenerator.cs
- FixUpCollection.cs
- ToolboxComponentsCreatedEventArgs.cs
- TraceLog.cs
- QilTypeChecker.cs
- ThreadExceptionEvent.cs
- Tool.cs
- StrokeCollectionConverter.cs
- AlternateViewCollection.cs
- ZipIOFileItemStream.cs
- SoapAttributes.cs
- AttributeData.cs
- ServicePointManager.cs
- OAVariantLib.cs
- PeerApplication.cs
- GridEntryCollection.cs
- MenuItemBindingCollection.cs
- SmiConnection.cs
- DataGridTemplateColumn.cs
- RequestCacheEntry.cs
- HandoffBehavior.cs
- MethodBody.cs
- SystemIPGlobalStatistics.cs
- ImageButton.cs
- AuthenticationSection.cs
- XmlTextReaderImpl.cs
- MsiStyleLogWriter.cs
- MessageQueuePermissionEntryCollection.cs
- ReadOnlyCollection.cs
- ScrollProviderWrapper.cs
- CfgArc.cs
- ByteStack.cs
- iisPickupDirectory.cs
- SQLUtility.cs