Вернуть обобщенный c класс и тип приведения - PullRequest
0 голосов
/ 28 апреля 2020

Я ссылаюсь на проект веб-сервиса, он имеет 4 сервиса, которые используют собственный объект модели.

Например: CalculationService - Response.cs DisplayService - Response.cs

public T ReturnResponse
{
  return genericResponse;
}

При использовании этого

Inside 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.

Общий метод, возвращающий обобщенный c класс ответа, который может быть назначен (приведение типа) во время выполнения.

Вот код, который я попробовал:

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» должен предшествовать любым другим ограничениям.

...