我目前正致力于通用请求/响应抽象,以便在根据请求接收预定义响应类时向组件发送任意类请求。
我有两个基类:
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