Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF扩展性消息编码器实现_C#_Wcf_Events_Delegates_Wcf Extensions - Fatal编程技术网

C# WCF扩展性消息编码器实现

C# WCF扩展性消息编码器实现,c#,wcf,events,delegates,wcf-extensions,C#,Wcf,Events,Delegates,Wcf Extensions,如何将ReadMessage和WriteMessage映射到可以控制类库外消息编码的事件 public class CustomMessageEncoder:MessageEncoder { public delegate Message ReadMessage_dlg(ArraySegment<byte> buffer, BufferManager bufferManager, string contentType); public delegate Message

如何将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();
    }

}
公共类CustomMessageEncoder:MessageEncoder
{
公共委托消息ReadMessage_dlg(ArraySegment缓冲区、BufferManager缓冲区管理器、字符串内容类型);
公共委托消息ReadMessage_dlg(System.IO.Stream,int-maxSizeOfHeaders,string-contentType);
公共静态事件ReadMessage\u dlg OnReadMessage;
public delegate ArraySegment WriteMessage_dlg(Message Message,int-maxpessagesize,BufferManager-BufferManager,int-messageOffset);
公共委托无效写消息(消息消息,System.IO.Stream);
公共静态事件WriteMessage_dlg OnWriteMessage;
.
.
.
公共重写消息ReadMessage(ArraySegment buffer、BufferManager、BufferManager、string contentType)
{
抛出新的NotImplementedException();
}
公共重写消息ReadMessage(System.IO.Stream、int-maxSizeOfHeaders、string-contentType)
{
抛出新的NotImplementedException();
}
公共重写ArraySegment WriteMessage(消息消息消息、int-maxMessageSize、BufferManager-BufferManager、int-messageOffset)
{
抛出新的NotImplementedException();
}
公共覆盖无效写消息(消息消息,System.IO.Stream)
{
抛出新的NotImplementedException();
}
}
我只需要StrongType(无动态/参数对象[])onReadMessage和onWriteMessage事件
有没有办法让代理/事件过载,从而可以接受两种方法?

我想这就是所有要求。你为什么不试试标准的方法呢? e、 g.在库外代码登记簿中的某个地方:

 OnWriteMessage += new WriteMessage_dlg(myMessage, myStream);
在每个特定的MessageEncoder读/写方法调用delegate.invoke

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