我有一个基本上是消息处理程序的类,它接受请求,找到该消息类型的处理器,创建一个适当的响应并返回它.为此,我创建了一个委托如下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)