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
- GroupByQueryOperator.cs
- ColumnResult.cs
- ConnectionManagementElementCollection.cs
- NullableIntAverageAggregationOperator.cs
- HtmlInputText.cs
- SafeCryptHandles.cs
- CookielessData.cs
- CommonGetThemePartSize.cs
- BuildDependencySet.cs
- Win32PrintDialog.cs
- XmlSignatureProperties.cs
- EnumBuilder.cs
- VisualTransition.cs
- ConfigurationValue.cs
- DocumentOrderQuery.cs
- HostExecutionContextManager.cs
- Token.cs
- MergePropertyDescriptor.cs
- UpdatePanelTriggerCollection.cs
- _ConnectStream.cs
- StylusLogic.cs
- Timer.cs
- AnnotationDocumentPaginator.cs
- SchemaSetCompiler.cs
- OracleNumber.cs
- DnsPermission.cs
- CounterCreationDataCollection.cs
- XmlCharacterData.cs
- AutomationProperties.cs
- BitmapScalingModeValidation.cs
- XhtmlConformanceSection.cs
- UndoManager.cs
- CommonXSendMessage.cs
- MsmqIntegrationChannelFactory.cs
- XmlSchemaSimpleContentRestriction.cs
- AmbientEnvironment.cs
- DesignerActionVerbList.cs
- TextEndOfLine.cs
- SpeechAudioFormatInfo.cs
- HttpCachePolicyElement.cs
- ModelPerspective.cs
- CompensatableTransactionScopeActivityDesigner.cs
- ClickablePoint.cs
- Link.cs
- SoapMessage.cs
- SafeNativeMethods.cs
- GeneralTransform3DGroup.cs
- HeaderCollection.cs
- QilStrConcatenator.cs
- SessionPageStateSection.cs
- NegotiateStream.cs
- ObjectKeyFrameCollection.cs
- Calendar.cs
- QueryOpeningEnumerator.cs
- CharacterString.cs
- DbgCompiler.cs
- CellRelation.cs
- CompositionTarget.cs
- TreeBuilder.cs
- XmlSchemaSimpleTypeList.cs
- LicenseManager.cs
- ToolStripPanelCell.cs
- Constraint.cs
- WebBrowserUriTypeConverter.cs
- NativeMethods.cs
- SemaphoreFullException.cs
- SessionStateUtil.cs
- PowerEase.cs
- ToolStripComboBox.cs
- StringReader.cs
- LinearQuaternionKeyFrame.cs
- BinaryConverter.cs
- PropertyValueChangedEvent.cs
- CheckBox.cs
- SponsorHelper.cs
- DeferredTextReference.cs
- CssClassPropertyAttribute.cs
- Baml6Assembly.cs
- MsmqTransportBindingElement.cs
- CaseStatement.cs
- FlowDocumentView.cs
- WpfKnownMember.cs
- DataControlFieldCell.cs
- UserNameServiceElement.cs
- TreePrinter.cs
- EvidenceTypeDescriptor.cs
- TabPage.cs
- CompiledRegexRunner.cs
- TextDecorations.cs
- PseudoWebRequest.cs
- Vector3DKeyFrameCollection.cs
- CfgArc.cs
- InputManager.cs
- AddingNewEventArgs.cs
- EntityDataSourceSelectedEventArgs.cs
- SimpleRecyclingCache.cs
- WSDualHttpSecurityElement.cs
- CodeConditionStatement.cs
- UseLicense.cs
- DataSvcMapFileSerializer.cs