2014-06-18 2 views
0

이런 종류의 이상한 질문이지만 혼란 스럽기 때문에 더 잘 묻는다고 생각합니다.변수 V/S 사용하기 세션 변수를 다시 사용하기

제 동료는 세션 변수를 두 번 이상 사용하는 경우 메서드에서 변수를 가져 와서 사용해야한다고 말했습니다. 그래서 세션 변수를 사용하고 세션 변수를 직접 사용하는 대신 사용하면 어떤 종류의 성능 향상이 있습니까? 대신 Convert.ToString(HttpContext.Session["CurrentFile"]) 네 번을 사용하는 것이 string currentFile = (string)HttpContext.Session["CurrentFile"];을하고 코드의 나머지 부분 currentFile를 사용하는 것이 좋습니다 것을 의미하는 경우, 당신 말이 맞아

Public ActionResult FileUpload(HttpPostedFileBase file, string rotatestr) 
{ 
    try 
    { 
    errorLog.ProcessMessage("FileUpload Method is Started"); 
    JavaScriptSerializer js = new JavaScriptSerializer(); 
    int[][] rotateInfo = js.Deserialize<int[][]>(rotatestr); 
       if (file != null && file.ContentLength > 0) 
       { 
     string filePath = Path.Combine(Server.MapPath(General.FaxFolder + 
     Convert.ToString(HttpContext.Session["CurrentFile"]) + "/"), 
     Path.GetFileName(file.FileName)); 

     file.SaveAs(filePath); 
     pdfOperation = new PdfOperationUtility(); 
     if (System.IO.File.Exists(Server.MapPath(General.FaxFolder + 
     Convert.ToString(HttpContext.Session["CurrentFile"]) + "/mearge.pdf"))) 
     { 
          pdfOperation.PdfSourcePath = General.FaxFolder + 
      Convert.ToString(HttpContext.Session["CurrentFile"]) + "/mearge.pdf"; 
     } 
     else 
     { 
     pdfOperation.PdfSourcePath = General.FaxFolder + 
      Convert.ToString(HttpContext.Session["CurrentFile"]) + "/" + 
      Convert.ToString(HttpContext.Session["barcodeString"]) + "." + FaxFileType.pdf; 
     } 
     pdfOperation.PdfDestinationPath = General.FaxFolder + Convert.ToString(HttpContext.Session["CurrentFile"]) + "/"; 
     pdfOperation.PdfMearge(filePath, rotateInfo); 
     pdfOperation.PdfSourcePath = General.FaxFolder + Convert.ToString(HttpContext.Session["CurrentFile"]) + "/mearge.pdf"; 
     pdfOperation.ImageOutputPath = General.FaxFolder + Convert.ToString(HttpContext.Session["CurrentFile"]) + General.splitImageFolder; 
     ViewBag.filelist = pdfOperation.SplitPdfToImages(true); 
    } 
    errorLog.ProcessMessage("FileUpload Method is Completed"); 
    return this.PartialView("_EditPdf"); 
    } 
    catch (Exception ex) 
    { 
    errorLog.Write(ex); 
    return RedirectToAction("Index", "Error"); 
    } 
} 
+0

세션 공급자에 따라 다릅니다. – haim770

+0

아마 관련 : http://stackoverflow.com/questions/13688457/getting-session-data-cost-in-asp-net-with-state-server – rene

+0

@OndrejSvejdar 여기 코드 샘플입니다. – Dhwani

답변

2

:

여기 내 코드입니다.

성능 측면에서 볼 때 파일 업로드를 처리하는 차이점을 알 수는 없지만 가독성과 유지 관리 용이성을 위해 권장됩니다.