2015-02-09 2 views
3

Мой код возвращает объект:Могу ли я вернуть анонимный объект в C#

public async Task<IHttpActionResult> GetAnswers(int userTestQuestionId) 
    { 

    return Ok(new AnswerToClientDTO 
     { 
      AnswerGridCorrect = answerGridCorrect, 
      Result = result, 
      UpdateRowCount = updateRowCount 
     }); 

Вот код для AnswerToClientDTO, который используется только в одном месте в моем приложении:

public class AnswerToClientDTO 
{ 
    public string AnswerGridCorrect { get; set; } 
    public int UpdateRowCount { get; set; } 
    public string Result { get; set; } 
} 

Возможно ли вернуть анонимный объект, где мне не нужно объявлять класс из метода ASP.NET WEB API?

+3

Да, если вы измените тип возврата на объект или динамический. –

+1

Вы можете просто попробовать) – oxfn

+1

Вы можете вернуть 'dynamic', но я бы не рекомендовал его ... тип безопасности - это хорошо. Было бы неплохо, если бы ваш код не скомпилировался, если вы ввели нарушение? –

ответ

7

В WebAPI вы можете передать любой объект Ok(), который может быть отформатированный с помощью настроенного форматировщиком, так что это должно быть справедливо:

public IHttpActionResult GetStuff() 
{ 
    return Ok(new { 
     AnswerGridCorrect = answerGridCorrect, 
     Result = result, 
     UpdateRowCount = updateRowCount 
    }); 
} 
+0

Как читать/получать это значение в другом методе C#? – ManirajSS

+1

@ManirajSS, вы не должны этого делать, потому что публичные действия предназначены только для внешнего использования (например, через HTTP-линию). Если вам нужно собрать некоторые данные между двумя действиями API, вы должны создать частный метод, который возвращает общие данные в некоторой DTO или ViewModel – oxfn

1

Технически, да, вы можете при условии, что вы используете object или dynamic. Это было сказано, что это не очень хорошая идея. Кроме того, если вы используете это для WebAPI, как вы упомянули (например, служба REST или SOAP через WCF), это будет плохой идеей, поскольку сериализация из HTTP-запроса/ответа не будет знать правильное форматирование, которое будет использоваться для отправлять данные обратно как JSON или XML.

+0

Mr/Ms Downvoter поможет объяснить проблему в моем ответе? – JNYRanger

Смежные вопросы