过去我一直在使用:
using (LoginServiceClient = new LoginServiceClient()) {
//do stuff
service.Close();
}
但现在,我正在尝试:
public class UseLoginService : ActionFilterAttribute {
LoginServiceClient = new LoginServiceClient();
public override void OnActionExecuting(ActionExecutingContext filterContext) {
base.OnActionExecuting(filterContext);
filterContext.ActionParameters["service"] = service;
}
public override void OnActionExecuted(ActionExecutedContext filterContext) {
base.OnActionExecuted(filterContext);
service.Close();
}
}
[UseLoginService]
public ActionResult myAction(LoginServiceClient service) {
//service is accessible here
return View();
}
这会正确关闭/处置服务吗?有没有办法告诉?我担心以这种方式做事会让自己容易受到内存泄漏的影响。