如何将ReadMessage和WriteMessage映射到可以控制类库之外的消息编码的事件?
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();
}
}我只想要StrongType (无动态/参数object[] )、onReadMessage和onWriteMessage事件。有没有办法重载可以接受两种方法的委托/事件?
发布于 2013-06-04 07:04:53
我想,这是通常的要求。你为什么不试试标准的方法呢?例如,在您的库外代码寄存器中的某个位置:
OnWriteMessage += new WriteMessage_dlg(myMessage, myStream);并在每个特定的MessageEncoder读/写方法中调用delegate.invoke?
public override void WriteMessage(Message wcfMessage, Stream stream) {
OnWriteMessage.Invoke();
}https://stackoverflow.com/questions/15784267
复制相似问题