0

how can i map the ReadMessage and WriteMessage to an Event that i can control the message encoding out of the class library ?

public class CustomMessageEncoder:MessageEncoder
{
    public delegate Message ReadMessage_dlg(ArraySegment<byte> buffer, BufferManager bufferManager, string contentType);
    public delegate Message ReadMessage_dlg(System.IO.Stream stream, int maxSizeOfHeaders, string contentType);
    public static event ReadMessage_dlg OnReadMessage;
    public delegate ArraySegment<byte> WriteMessage_dlg(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset);
    public delegate void WriteMessage_dlg(Message message, System.IO.Stream stream);
    public static event WriteMessage_dlg OnWriteMessage;
    .
    .
    .

    public override Message ReadMessage(ArraySegment<byte> buffer, BufferManager bufferManager, string contentType)
    {
        throw new NotImplementedException();
    }

    public override Message ReadMessage(System.IO.Stream stream, int maxSizeOfHeaders, string contentType)
    {
        throw new NotImplementedException();
    }

    public override ArraySegment<byte> WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset)
    {
        throw new NotImplementedException();
    }

    public override void WriteMessage(Message message, System.IO.Stream stream)
    {
        throw new NotImplementedException();
    }

}

i just want StrongType (no dynamic / params object[] ) onReadMessage and onWriteMessage events is there any way to overload delegates/event that can accept tow methode ?

patachi
  • 315
  • 1
  • 2
  • 18

1 Answers1

0

That's usuall requirement, i think. Why don't you try the standard way of doing this? e.g. somewhere in your out-of-library code register:

 OnWriteMessage += new WriteMessage_dlg(myMessage, myStream);

and at each particular MessageEncoder read/write method call delegate.invoke?

 public override void WriteMessage(Message wcfMessage, Stream stream) {
   OnWriteMessage.Invoke();
 }