Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Description / MessageDescription.cs / 1 / MessageDescription.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Description { using System.Collections.Generic; using System.ServiceModel.Channels; using System.ServiceModel; using System.Xml; using System.Runtime.Serialization; using System.Diagnostics; using System.Net.Security; using System.ServiceModel.Security; [DebuggerDisplay("Action={action}, Direction={direction}, MessageType={messageType}")] public class MessageDescription { string action; MessageDirection direction; MessageDescriptionItems items; XmlName messageName; Type messageType; XmlQualifiedName xsdType; ProtectionLevel protectionLevel; bool hasProtectionLevel; public MessageDescription(string action, MessageDirection direction) : this(action, direction, null) { } internal MessageDescription(string action, MessageDirection direction, MessageDescriptionItems items) { if (!MessageDirectionHelper.IsDefined(direction)) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("direction")); this.action = action; this.direction = direction; this.items = items; } internal MessageDescription(MessageDescription other) { this.action = other.action; this.direction = other.direction; this.Items.Body = other.Items.Body.Clone(); foreach (MessageHeaderDescription mhd in other.Items.Headers) { this.Items.Headers.Add(mhd.Clone() as MessageHeaderDescription); } foreach (MessagePropertyDescription mpd in other.Items.Properties) { this.Items.Properties.Add(mpd.Clone() as MessagePropertyDescription); } this.MessageName = other.MessageName; this.MessageType = other.MessageType; this.XsdTypeName = other.XsdTypeName; this.hasProtectionLevel = other.hasProtectionLevel; this.ProtectionLevel = other.ProtectionLevel; } internal MessageDescription Clone() { return new MessageDescription(this); } public string Action { get { return action; } internal set { action = value; } } public MessageBodyDescription Body { get { return Items.Body; } } public MessageDirection Direction { get { return direction; } } public MessageHeaderDescriptionCollection Headers { get { return Items.Headers; } } public MessagePropertyDescriptionCollection Properties { get { return Items.Properties; } } internal MessageDescriptionItems Items { get { if (items == null) items = new MessageDescriptionItems(); return items; } } public ProtectionLevel ProtectionLevel { get { return this.protectionLevel; } set { if (!ProtectionLevelHelper.IsDefined(value)) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); this.protectionLevel = value; this.hasProtectionLevel = true; } } public bool HasProtectionLevel { get { return this.hasProtectionLevel; } } internal XmlName MessageName { get { return messageName; } set { messageName = value; } } // Not serializable on purpose, metadata import/export cannot // produce it, only available when binding to runtime public Type MessageType { get { return messageType; } set { messageType = value; } } internal bool IsTypedMessage { get { return messageType != null; } } internal bool IsUntypedMessage { get { return (Body.ReturnValue != null && Body.Parts.Count == 0 && Body.ReturnValue.Type == typeof(Message)) || (Body.ReturnValue == null && Body.Parts.Count == 1 && Body.Parts[0].Type == typeof(Message)); } } internal bool IsVoid { get { return !IsTypedMessage && Body.Parts.Count == 0 && (Body.ReturnValue == null || Body.ReturnValue.Type == typeof(void)); } } internal XmlQualifiedName XsdTypeName { get { return xsdType; } set { xsdType = value; } } internal void ResetProtectionLevel() { this.protectionLevel = ProtectionLevel.None; this.hasProtectionLevel = false; } } internal class MessageDescriptionItems { MessageHeaderDescriptionCollection headers; MessageBodyDescription body; MessagePropertyDescriptionCollection properties; internal MessageBodyDescription Body { get { if (body == null) body = new MessageBodyDescription(); return body; } set { this.body = value; } } internal MessageHeaderDescriptionCollection Headers { get { if (headers == null) headers = new MessageHeaderDescriptionCollection(); return headers; } } internal MessagePropertyDescriptionCollection Properties { get { if (properties == null) properties = new MessagePropertyDescriptionCollection(); return properties; } } } } // 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
- IgnoreSection.cs
- FixedSOMImage.cs
- UserNameServiceElement.cs
- VisualBasicSettingsHandler.cs
- UriSectionReader.cs
- ExpressionBindingCollection.cs
- Visual3DCollection.cs
- invalidudtexception.cs
- MonitorWrapper.cs
- FileLogRecord.cs
- CapabilitiesRule.cs
- Pen.cs
- MultilineStringConverter.cs
- DrawingContextDrawingContextWalker.cs
- RegularExpressionValidator.cs
- NamespaceDecl.cs
- WebPartMenu.cs
- MLangCodePageEncoding.cs
- CustomAttributeFormatException.cs
- DetailsViewInsertedEventArgs.cs
- XmlIncludeAttribute.cs
- ProcessHostMapPath.cs
- CuspData.cs
- _NegoState.cs
- XmlSerializerVersionAttribute.cs
- DataConnectionHelper.cs
- XmlAggregates.cs
- DesignerTextBoxAdapter.cs
- JavascriptCallbackMessageInspector.cs
- ModuleElement.cs
- TransformProviderWrapper.cs
- SelectionPatternIdentifiers.cs
- XsdCachingReader.cs
- HwndAppCommandInputProvider.cs
- AudioDeviceOut.cs
- TypeDescriptionProviderAttribute.cs
- FrameworkElementFactory.cs
- DataColumnChangeEvent.cs
- SecurityDocument.cs
- PrimarySelectionGlyph.cs
- XmlNamedNodeMap.cs
- DataGridRowHeaderAutomationPeer.cs
- FastPropertyAccessor.cs
- DebugView.cs
- FixedSOMElement.cs
- CodeCastExpression.cs
- WrapPanel.cs
- ProtocolsConfiguration.cs
- ImageButton.cs
- UpdatePanel.cs
- CodeBlockBuilder.cs
- XmlReflectionMember.cs
- CounterSample.cs
- ProfileEventArgs.cs
- DataObjectEventArgs.cs
- BulletChrome.cs
- StatusBarPanel.cs
- IsolatedStorageSecurityState.cs
- ParseNumbers.cs
- XpsManager.cs
- HtmlInputControl.cs
- PersonalizationState.cs
- ExpressionVisitor.cs
- ConfigurationElement.cs
- dataSvcMapFileLoader.cs
- DefaultPropertyAttribute.cs
- QueryOutputWriter.cs
- CodeMethodMap.cs
- FamilyTypefaceCollection.cs
- ProgressBar.cs
- rsa.cs
- LoadedOrUnloadedOperation.cs
- AttributeCollection.cs
- CalloutQueueItem.cs
- ExceptionHandler.cs
- DesigntimeLicenseContext.cs
- IsolatedStorageFilePermission.cs
- CompilerScope.cs
- DoWorkEventArgs.cs
- SafeMILHandle.cs
- UnhandledExceptionEventArgs.cs
- VirtualizingStackPanel.cs
- NetworkAddressChange.cs
- QueueProcessor.cs
- DeflateInput.cs
- FixedPageAutomationPeer.cs
- RegexTree.cs
- ControlBuilder.cs
- QueryParameter.cs
- ProviderConnectionPoint.cs
- FrameworkContextData.cs
- UnsafeNativeMethods.cs
- GestureRecognitionResult.cs
- HMAC.cs
- Blend.cs
- ComplexType.cs
- InkCollectionBehavior.cs
- SpellerError.cs
- ObjectDataSourceView.cs
- NameSpaceExtractor.cs