返回泛型类并进行类型转换

时间:2020-04-27 21:11:38

标签: c# generics c#-4.0 collections

我正在引用一个Web服务项目,它有4个服务,它们使用自己的模型对象。

例如: CalculationService - Response.cs DisplayService - Response.cs

public T ReturnResponse
{
  return genericResponse;
}

在消费时

内部CalculationService

var result= CalculationService.ReturnResponse(); //I want this to be namespace of 
CalculationService.Response class.

Inside DisplayService    
var result=DisplayService.ReturnResponse(); //I want this to be namespace of 
DisplayService.Response class.

返回通用响应类的通用方法,可以在运行时进行分配(类型转换)。

这是我尝试的代码:

public T ReturnMyResponse<T> where T:CalculationService.Response,DisplayService.Response,new()                                                 
{
var returnClass=new T();
if(typeof(CalculationService.Response)==typeof(T))
{ 
  var className=returnClass as CalculationService.Response;
  return (T)className;
}
if(typeof(DisplayService.Response)==typeof(T))
{ 
  var className=returnClass as DisplayService.Response;
  return (T)className;}return new T();
}

我看到此错误:类类型“ DisplayService.Response”必须位于其他任何约束之前。

0 个答案:

没有答案