2017-03-29 1 views
2

하나의 API 컨트롤러를 만들고 ActionFilterAttribute를 구현했으며 결과를 클래스 개체로 가져 오려고합니다.HttpActionContext.response에서 클래스 객체를 전달하는 방법은 무엇입니까?

public class AuthorizationAttribute : ActionFilterAttribute 
{ 
    ErrorInformation objError = new ErrorInformation(); 

    public override void OnActionExecuting(HttpActionContext actionContext) 
    { 
     if (string.IsNullOrEmpty(token)) 
     { 
      objError.ErrorMessage = "Missing Request Token"; 
      objError.StatusCode = Convert.ToInt16(HttpStatusCode.ExpectationFailed); 
      objError.ErrorType = ""; 
      objError.ErrorCode = "E:101";     

      actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest) 
      { 
       Content = new StringContent("Missing Request Token"), 
      }; 

      // Here i want to pass my above class object 'objError' in 'actionContext.Response' 
      // it is possible to pass 'objError' as a result ?** 
      return; 
     } 
    }  
} 

답변

2

일부 연구를 마친 후에 아래에서이 문제가 성공적으로 해결되었습니다.

public class AuthorizationAttribute : ActionFilterAttribute 
{ 
    ErrorInformation objError = new ErrorInformation(); 

    public override void OnActionExecuting(HttpActionContext actionContext) 
    { 
     if (string.IsNullOrEmpty(token)) 
     { 
      objError.ErrorMessage = "Missing Request Token"; 
      objError.StatusCode = Convert.ToInt16(HttpStatusCode.ExpectationFailed); 
      objError.ErrorType = ""; 
      objError.ErrorCode = "E:101";     

      //actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest) 
      // { 
      // Content = new StringContent("Missing Request Token"), 
      //}; 

      // For pass class object as a response   
      var request = actionContext.Request; 

      actionContext.Response = request.CreateResponse<ErrorInformation>(HttpStatusCode.BadRequest, objError); 

      return; 
     } 
    }  
} 
관련 문제