Fixing an issue with output parameters that are of type IntPtr
[castle.git] / Facilities / Wcf / Castle.Facilities.WcfIntegration.Tests / Behaviors / CallCountServiceBehavior.cs
blobcb9b207947e048224f95aaa9925270116f1554d0
1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle.Facilities.WcfIntegration.Tests.Behaviors
17 using System.Collections.ObjectModel;
18 using System.ServiceModel;
19 using System.ServiceModel.Channels;
20 using System.ServiceModel.Description;
21 using System.ServiceModel.Dispatcher;
23 public class CallCountServiceBehavior : IServiceBehavior
25 public static int CallCount = 0;
27 #region IServiceBehavior Members
29 public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
33 public void AddBindingParameters(
34 ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints, BindingParameterCollection bindingParameters)
38 public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
40 foreach (ChannelDispatcher channelDispatcher in serviceHostBase.ChannelDispatchers)
42 foreach (EndpointDispatcher endPointDispatcher in channelDispatcher.Endpoints)
44 endPointDispatcher.DispatchRuntime.MessageInspectors.Add(new CallCountMessageInspector());
49 #endregion
51 #region Nested type: CallCountMessageInspector
53 public class CallCountMessageInspector : IDispatchMessageInspector
55 #region IDispatchMessageInspector Members
57 public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
59 CallCount += 1;
60 return null;
63 public void BeforeSendReply(ref Message reply, object correlationState)
67 #endregion
70 #endregion