我正在使用IIS上托管的Microsoft Asp.net WebApi2.我非常想简单地记录每个帖子的请求体(xml或json)和响应体.
这个项目或处理帖子的控制器没什么特别之处.我对使用nLog,elmah,log4net等日志框架或webapi的内置跟踪功能不感兴趣,除非有必要这样做.
我只是想知道在哪里放置我的日志代码以及如何从传入和传出的请求和响应中获取实际的json或xml.
我的控制器发布方法:
public HttpResponseMessage Post([FromBody])Employee employee)
{
if (ModelState.IsValid)
{
// insert employee into to database
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个通用的动作过滤器,我想在OnActionExecuting方法中获得当前的模型.我目前的实现如下:
public class CommandFilter<T> : IActionFilter where T : class, new()
{
public void OnActionExecuting(ActionExecutingContext actionContext)
{
var model= (T)actionContext.ActionArguments["model"];
}
}
Run Code Online (Sandbox Code Playgroud)
如果我的所有型号名称相同,它的效果很好.但我想使用不同的模型名称.
如何解决这个问题呢?
编辑
public class HomeController : Controller
{
[ServiceFilter(typeof(CommandActionFilter<CreateInput>))]
public IActionResult Create([FromBody]CreateInput model)
{
return new OkResult();
}
}
Run Code Online (Sandbox Code Playgroud)