泛型类型推断的通用(响应请求)

Sim*_*tes 5 .net c# compiler-construction generics

我目前正在开发一个通用请求/响应抽象,以便在接收基于请求的预定义响应类时向组件发送任意类请求.

我有两个基类:

abstract class RequestClass<T>
    where T : ResponseClass
{
}

abstract class ResponseClass
{
}
Run Code Online (Sandbox Code Playgroud)

因此,请求类定义其响应类.为了演示这种情况,我有以下示例类:

class DoSomethingRequest : RequestClass<DoSomethingResponse>
{
}

class DoSomethingResponse : ResponseClass
{
}
Run Code Online (Sandbox Code Playgroud)

现在要处理请求,我有以下方法:

TResult SendRequest<T, TResult>( T Request )
    where T : RequestClass<TResult>
    where TResult : ResponseClass
{
}
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好; 但是,虽然我希望以下工作正常,但编译器无法推断出以下请求的类型参数:

DoSomethingResponse Response = SendRequest( new DoSomethingRequest() );
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?编译器应该具有所需的所有信息,并推断"DoSomethingRequest是DoSomethingResponse的RequestClass"并且编译没有问题.有没有其他方法可以使我的方案工作?

感谢帮助.在此先感谢您的问候!-Simon