35 lines
1.1 KiB
C#
35 lines
1.1 KiB
C#
using System.Net.Http;
|
|
using System.Net.Http.Formatting;
|
|
|
|
namespace Microsoft.AspNet.Mvc
|
|
{
|
|
public class ActionResultFactory : IActionResultFactory
|
|
{
|
|
public IActionResult CreateActionResult(object actionReturnValue)
|
|
{
|
|
var actionResult = actionReturnValue as IActionResult;
|
|
|
|
if (actionResult != null)
|
|
{
|
|
return actionResult;
|
|
}
|
|
|
|
var responseMessage = actionReturnValue as HttpResponseMessage;
|
|
if (responseMessage != null)
|
|
{
|
|
return new HttpResponseMessageActionResult(responseMessage);
|
|
}
|
|
|
|
// all other object types are treated as an http response message action result
|
|
var content = new ObjectContent(actionReturnValue.GetType(),
|
|
actionReturnValue,
|
|
new JsonMediaTypeFormatter());
|
|
|
|
return new HttpResponseMessageActionResult(new HttpResponseMessage
|
|
{
|
|
Content = content
|
|
});
|
|
}
|
|
}
|
|
}
|