小编ren*_*ezz的帖子

动态执行代理

我有一个基本上是消息处理程序的类,它接受请求,找到该消息类型的处理器,创建一个适当的响应并返回它.为此,我创建了一个委托如下public delegate Rs ProcessRequest<Rq,Rs>(Rq request);,然后在我的类中创建了许多支持的消息及其处理方法.问题是主要的处理方法应该找出使用哪种处理方法无法使用GetMethod()方法找到方法.

这是整个代码,如果你能告诉我如何动态选择合适的方法然后执行它,那就是我正在寻找的东西.

public delegate Rs ProcessRequest<in Rq, out Rs>(Rq request) where Rq : API.Request where Rs : API.Response;

public class WebSocketServer
{
    private WebSocketMessageHandler messageHander;

    // Incoming message handlers
    public ProcessRequest<InitUDPConnectionRq, InitUDPConnectionRs> ProcessInitUDPConnection;
    public ProcessRequest<ListenHandshakeRq, ListenHandshakeRs> ProcessListenHandshake;
    public ProcessRequest<PresenceChangeRq, PresenceChangeRs> ProcessPresenceChange;
    public ProcessRequest<ChatMessageRq, ChatMessageRs> ProcessChatMessage;
    public ProcessRequest<RDPRequestResponseRq, RDPRequestResponseRs> ProcessRDPRequestResponse;
    public ProcessRequest<RDPIncomingRequestRq, RDPIncomingRequestRs> ProcessRDPIncomingRequest;

    public WebSocketServer(WebSocketMessageHandler handler)
    {
        this.messageHander = handler;
    }

    public void processRequest(API.Request request)
    {
        String resquestType = request.GetType().Name;
        String processorName = resquestType.Substring(0, …
Run Code Online (Sandbox Code Playgroud)

c# reflection delegates dynamic

5
推荐指数
1
解决办法
163
查看次数

标签 统计

c# ×1

delegates ×1

dynamic ×1

reflection ×1