init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
104
Kreta.BusinessLogic/Classes/WcfMessageLogger.cs
Normal file
104
Kreta.BusinessLogic/Classes/WcfMessageLogger.cs
Normal file
|
@ -0,0 +1,104 @@
|
|||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.ServiceModel;
|
||||
using System.ServiceModel.Channels;
|
||||
using System.ServiceModel.Configuration;
|
||||
using System.ServiceModel.Description;
|
||||
using System.ServiceModel.Dispatcher;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes
|
||||
{
|
||||
public class WcfMessageLogger : IDispatchMessageInspector, IClientMessageInspector, IServiceBehavior, IEndpointBehavior
|
||||
{
|
||||
#region IDispatchMessageInspector
|
||||
|
||||
public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
|
||||
{
|
||||
Trace.WriteLine($"WCF request:{Environment.NewLine}{request}");
|
||||
return null;
|
||||
}
|
||||
|
||||
public void BeforeSendReply(ref Message reply, object correlationState)
|
||||
{
|
||||
Trace.WriteLine($"WCF response:{Environment.NewLine}{reply}");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IClientMessageInspector
|
||||
|
||||
public object BeforeSendRequest(ref Message request, IClientChannel channel)
|
||||
{
|
||||
Trace.WriteLine($"WCF request:{Environment.NewLine}{request}");
|
||||
return null;
|
||||
}
|
||||
|
||||
public void AfterReceiveReply(ref Message reply, object correlationState)
|
||||
{
|
||||
Trace.WriteLine($"WCF response:{Environment.NewLine}{reply}");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IServiceBehavior
|
||||
|
||||
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
|
||||
{
|
||||
foreach (ChannelDispatcher dispatcher in serviceHostBase.ChannelDispatchers)
|
||||
{
|
||||
foreach (var endpoint in dispatcher.Endpoints)
|
||||
{
|
||||
endpoint.DispatchRuntime.MessageInspectors.Add(new WcfMessageLogger());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints, BindingParameterCollection bindingParameters)
|
||||
{
|
||||
}
|
||||
|
||||
public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IEndpointBehavior
|
||||
|
||||
public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
|
||||
{
|
||||
clientRuntime.ClientMessageInspectors.Add(new WcfMessageLogger());
|
||||
}
|
||||
|
||||
public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
|
||||
{
|
||||
}
|
||||
|
||||
public void AddBindingParameters(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters)
|
||||
{
|
||||
}
|
||||
|
||||
public void Validate(ServiceEndpoint endpoint)
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
public class WcfMessageLoggerExtension : BehaviorExtensionElement
|
||||
{
|
||||
protected override object CreateBehavior()
|
||||
{
|
||||
return new WcfMessageLogger();
|
||||
}
|
||||
|
||||
public override Type BehaviorType
|
||||
{
|
||||
get
|
||||
{
|
||||
return typeof(WcfMessageLogger);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue