我可以 return C# 中的匿名对象吗
Can I return an anonymous object in C#
我的代码return是一个对象:
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; }
}
我是否可以 return 一个匿名对象,我不必从 ASP.NET WEb API 方法中声明 class?
在 WebAPI 中,您可以将任何对象传递给 Ok()
,它可以由配置的格式化程序格式化,因此这应该是有效的:
public IHttpActionResult GetStuff()
{
return Ok( new {
AnswerGridCorrect = answerGridCorrect,
Result = result,
UpdateRowCount = updateRowCount
} );
}
从技术上讲,可以,只要您使用 object
或 dynamic
。话虽如此,这不是一个好主意。此外,如果您将它用于您提到的 WebAPI(例如通过 WCF 的 REST 或 SOAP 服务),这将是一个坏主意,因为从 HTTP 调用/到响应的序列化不知道要使用的正确格式将数据发送回 JSON 或 XML.
我的代码return是一个对象:
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; }
}
我是否可以 return 一个匿名对象,我不必从 ASP.NET WEb API 方法中声明 class?
在 WebAPI 中,您可以将任何对象传递给 Ok()
,它可以由配置的格式化程序格式化,因此这应该是有效的:
public IHttpActionResult GetStuff()
{
return Ok( new {
AnswerGridCorrect = answerGridCorrect,
Result = result,
UpdateRowCount = updateRowCount
} );
}
从技术上讲,可以,只要您使用 object
或 dynamic
。话虽如此,这不是一个好主意。此外,如果您将它用于您提到的 WebAPI(例如通过 WCF 的 REST 或 SOAP 服务),这将是一个坏主意,因为从 HTTP 调用/到响应的序列化不知道要使用的正确格式将数据发送回 JSON 或 XML.