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

时间:2014-10-30 12:47:02

标签: c# .net generics compiler-construction

我目前正致力于通用请求/响应抽象,以便在根据请求接收预定义响应类时向组件发送任意类请求。

我有两个基类:

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

abstract class ResponseClass
{
}

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

class DoSomethingRequest : RequestClass<DoSomethingResponse>
{
}

class DoSomethingResponse : ResponseClass
{
}

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

TResult SendRequest<T, TResult>( T Request )
    where T : RequestClass<TResult>
    where TResult : ResponseClass
{
}

到目前为止一切顺利;但是,虽然我希望以下方法有效,但编译器无法推断出以下请求的类型参数:

DoSomethingResponse Response = SendRequest( new DoSomethingRequest() );

为什么这不起作用?编译器应该具有所需的所有信息,并推断出&#34; DoSomethingRequest是DoSomethingResponse的RequestClass&#34;并编译没有问题。 有没有其他方法可以让我的方案工作?

帮助表示赞赏。 在此先感谢您的问候! -Simon

0 个答案:

没有答案