1
// Copyright 2004-2008 Castle Project - http://www.castleproject.org/
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
7 // http://www.apache.org/licenses/LICENSE-2.0
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());
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
)
63 public void BeforeSendReply(ref Message reply
, object correlationState
)