Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Dispatcher / ActionMessageFilter.cs / 1 / ActionMessageFilter.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System; using System.ServiceModel.Channels; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Runtime.Serialization; [DataContract] public class ActionMessageFilter : MessageFilter { Dictionaryactions; ReadOnlyCollection actionSet; [DataMember(IsRequired = true)] internal string[] DCActions { get { string[] act = new string[this.actions.Count]; actions.Keys.CopyTo(act, 0); return act; } set { Init(value); } } public ActionMessageFilter(params string[] actions) { if(actions == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("actions"); } Init(actions); } void Init(string[] actions) { if(actions.Length == 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.ActionFilterEmptyList), "actions")); } this.actions = new Dictionary (); for(int i = 0; i < actions.Length; ++i) { // Duplicates are removed if(!this.actions.ContainsKey(actions[i])) { this.actions.Add(actions[i],0); } } } public ReadOnlyCollection Actions { get { if(this.actionSet == null) { this.actionSet = new ReadOnlyCollection (new List (this.actions.Keys)); } return this.actionSet; } } protected internal override IMessageFilterTable CreateFilterTable () { return new ActionMessageFilterTable (); } bool InnerMatch(Message message) { string act = message.Headers.Action; if(act == null) { act = string.Empty; } return this.actions.ContainsKey(act); } public override bool Match(Message message) { if(message == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message"); } return InnerMatch(message); } public override bool Match(MessageBuffer messageBuffer) { if(messageBuffer == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("messageBuffer"); } Message msg = messageBuffer.CreateMessage(); try { return InnerMatch(msg); } finally { msg.Close(); } } } } // 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
- CodeTypeDeclaration.cs
- RepeatInfo.cs
- WebPartConnectionsDisconnectVerb.cs
- DbParameterHelper.cs
- RequestResizeEvent.cs
- FileDialog_Vista_Interop.cs
- x509store.cs
- RootContext.cs
- AppSecurityManager.cs
- MutexSecurity.cs
- ClientScriptManagerWrapper.cs
- SerializationSectionGroup.cs
- PackUriHelper.cs
- WpfXamlLoader.cs
- WindowsScroll.cs
- SQLUtility.cs
- LockedActivityGlyph.cs
- HTMLTagNameToTypeMapper.cs
- ValidatorCollection.cs
- ActivityTypeCodeDomSerializer.cs
- MemberJoinTreeNode.cs
- HtmlInputImage.cs
- FragmentQueryProcessor.cs
- SafeNativeMethods.cs
- ErrorRuntimeConfig.cs
- CodeMemberProperty.cs
- PopupRootAutomationPeer.cs
- ContainerUIElement3D.cs
- RunClient.cs
- HtmlInputRadioButton.cs
- TableCellAutomationPeer.cs
- OracleDataAdapter.cs
- CodeMethodReturnStatement.cs
- ProgressBarHighlightConverter.cs
- SoapElementAttribute.cs
- ToolStripRendererSwitcher.cs
- SharedPersonalizationStateInfo.cs
- NamespaceTable.cs
- StatusStrip.cs
- ForeignKeyFactory.cs
- DialogResultConverter.cs
- XslAst.cs
- EncodingNLS.cs
- Attachment.cs
- ToolStripProgressBar.cs
- RangeBaseAutomationPeer.cs
- TrustLevel.cs
- ExpressionLink.cs
- ExitEventArgs.cs
- XmlSerializerOperationBehavior.cs
- MobileControlsSectionHelper.cs
- PropertyMapper.cs
- ActionFrame.cs
- FieldDescriptor.cs
- XmlSchemaSequence.cs
- EventOpcode.cs
- HttpPostServerProtocol.cs
- PersonalizationProviderCollection.cs
- PageAsyncTaskManager.cs
- GeometryModel3D.cs
- SQLInt32.cs
- SizeLimitedCache.cs
- ColumnHeader.cs
- AutoGeneratedFieldProperties.cs
- DataGridViewCellValidatingEventArgs.cs
- MSAAWinEventWrap.cs
- ListViewItem.cs
- AjaxFrameworkAssemblyAttribute.cs
- Assert.cs
- MarkerProperties.cs
- DataGridPageChangedEventArgs.cs
- MessageBodyDescription.cs
- SessionStateUtil.cs
- StickyNoteAnnotations.cs
- DllNotFoundException.cs
- DesignerAttribute.cs
- SetterBase.cs
- Brush.cs
- XNodeNavigator.cs
- SettingsSavedEventArgs.cs
- IndentedWriter.cs
- Misc.cs
- XmlLanguageConverter.cs
- SizeValueSerializer.cs
- EdmScalarPropertyAttribute.cs
- XamlFigureLengthSerializer.cs
- HtmlButton.cs
- SchemaNames.cs
- OleDbRowUpdatedEvent.cs
- Size3DValueSerializer.cs
- XmlEnumAttribute.cs
- Tile.cs
- CurrencyWrapper.cs
- ImageCodecInfo.cs
- BoundField.cs
- SuppressMessageAttribute.cs
- Converter.cs
- SessionStateSection.cs
- StringInfo.cs
- XmlWriterDelegator.cs