我有以下代码使用非通用方法解析服务。我不能使用可以解决我的问题的通用类型,因为我不知道要传入的类型。
我不喜欢最后一行,它运行良好,但我想知道是否可以将我的处理程序“转换”到正确的接口以便直接调用 Handle 方法?在我的情况下,我确信 resolve 返回的类型将是 handlerType 类型。
var handlerType = typeof (IQueryHandler<,>).MakeGenericType(query.GetType(), typeof (TResponseData));
var handler = _container.Resolve(handlerType);
var resp = new Response<TResponseData>();
resp.Data = (TResponseData) handler.GetType().GetMethod("Handle").Invoke(handler, new object[] {query});