想法是对不同类型的结果使用相同的操作方法 即。
/类别/信息/?的resultFormat = JSON
/类别/信息/?的resultFormat = XML
所以要有一些包含已注册的值解析器对的ActionResult助手
“json”,JsonValueResolver
“xml”,XmlResolver
等...已经有解决方案了,或者我必须考虑某种自定义解析器? Automapper有很好的价值解决方案。有什么想法吗?
答案 0 :(得分:1)
public class SmartResult : ActionResult
{
public override void ExecuteResult(ControllerContext context)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
if (context.HttpContext.Request.QueryString["ResultFormat] == "json")
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
context.HttpContext.Response.Write(serializer.Serialize(this.Data));
} else if(context.HttpContext.Request.QueryString["ResultFormat] == "xml")
{
...serialize using xmlserializer
}else{
throw new InvalidOperationException();
}
}
public object Data { get; set; }
}