反序列化/解码CSLA.Net请求和响应

时间:2014-04-02 10:00:24

标签: csla

使用CSLA.Net以可读格式反序列化并以可读格式呈现应用程序和服务器之间的通信的最快方法是什么?

1 个答案:

答案 0 :(得分:0)

如果您使用的是WCF,则应该能够在客户端的app.config文件中添加自定义端点行为。

创建自定义消息检查器(此处的示例只是记录到输出窗口或跟踪):

public class OutputMessageInspector : IClientMessageInspector
{
    public object BeforeSendRequest(ref Message request, IClientChannel channel)
    {
        Debug.WriteLine("Request XML: ");
        Debug.WriteLine(request.ToString() ?? "<NULL>");
        return null;
    }

    public void AfterReceiveReply(ref Message reply, object correlationState)
    {
        Debug.WriteLine("Response XML: ");
        Debug.WriteLine(reply.ToString() ?? "<NULL>");
    }
}

将该消息检查器添加到自定义端点行为:

public class CustomMessageInspectorBehavior : IEndpointBehavior
{
    public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
    {
        clientRuntime.MessageInspectors.Add(new OutputMessageInspector());
    }

    public void Validate(ServiceEndpoint endpoint) { }

    public void AddBindingParameters(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters) { }

    public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher) { }
}

现在只需更新您的app.config WCF配置,将CustomMessageInspectorBehavior添加为端点行为。 See MSDN