C#-具有多个类型的泛型类型,包括具有
我有以下通用类:C#-具有多个类型的泛型类型,包括具有,c#,.net,generics,C#,.net,Generics,我有以下通用类: public class DomainValidator<TRequest> : IValidator<TRequest> where TRequest : IRequest, IRequest<object> { } 但是下面的类RequestThatDoesWorkValidator似乎可以工作,因为RequestThatDoesWork为IRequest提供了一个类型: public class RequestThatDoesWork
public class DomainValidator<TRequest> : IValidator<TRequest> where TRequest : IRequest, IRequest<object>
{
}
但是下面的类RequestThatDoesWorkValidator
似乎可以工作,因为RequestThatDoesWork
为IRequest
提供了一个类型:
public class RequestThatDoesWorkValidator : DomainValidator<RequestThatDoesWork>
{
}
public class RequestThatDoesWork : IRequest<List<string>>
{
}
公共类请求DoesWorldValidator:DomainValidator
{
}
Doeswork的公共类请求:IRequest
{
}
我希望这更有意义 您需要将类型参数添加到自己的类型中,以作为嵌套参数传递:
public class DomainValidator<TRequest, TInner> : IValidator<TRequest>
where TRequest : IRequest, IRequest<TInner>
公共类域验证程序:IValidator
TRequest在哪里:IRequest,IRequest
您能否发布一段代码片段,向我们展示哪些内容无法编译?听起来好像你在试图将DomainValidator强制转换为IRequest,这没有任何意义。@JohnWu请查看我更新的queston。当你说“我为TRequest
的类型指定了2种类型”时,你是想TRequest
实现列出的两个接口,还是其中一个接口?因为您目前拥有的需要TRequest
来满足列出的两个接口。事实上,你不能说“需要TRequest
来实现IRequest
或IRequest
”。另请看@AakashM谢谢,这就是我想要的。我需要一个基本界面。请看我更新的问题。我不知道你在问什么。
public class DomainValidator<TRequest, TInner> : IValidator<TRequest>
where TRequest : IRequest, IRequest<TInner>