2014-10-22 187 views
-1

我有一個叫「類」文件夾,該文件夾中我有一個類叫做ConverImages.csC#訪問方法從控制器

在這個文件是下面的代碼:

namespace VehicleAudits2_v1.classes 
{ 
    public class ConvertImage 
    { 
     public Image base64ToImage(string base64String) 
     { 
      // Convert Base64 String to byte[] 
      byte[] imageBytes = Convert.FromBase64String(base64String); 
      MemoryStream ms = new MemoryStream(imageBytes, 0, 
      imageBytes.Length); 

      // Convert byte[] to Image 
      ms.Write(imageBytes, 0, imageBytes.Length); 
      Image image = Image.FromStream(ms, true); 
      return image; 

     } 
    } 
} 

我會怎樣從控制器調用這個?如果此代碼是我控制我只是會直接調用它像這樣:

base64ToImage(ImageString); 

,但我無法弄清楚如何從外部文件調用,並在互聯網上搜索並沒有拿出任何東西

+5

你可能會得到更好的服務於拿起一本書C#和麪向對象編程一般 – 2014-10-22 11:05:35

回答

1

你必須包括命名空間在你的控制器類並調用該方法是這樣的:

using VehicleAudits2_v1.classes; 

public class SomeController : Controller 
{ 

    public ActionResult SomeAction() 
    { 
    ConvertImage convert = new ConvertImage(); 
    convert.base64ToImage("SomeValue"); 
    return View(); 

    } 

} 
-3

讓你的方法static

public static Image base64ToImage(string base64String) 

然後使用<class_name>.<method_name>是指它在你的控制器:

ConvertImage.base64ToImage(ImageString); 
+1

我不不明白爲什麼你這個人(你和@Rik)建議讓這個方法變成靜態的? – 2014-10-22 11:10:02

+0

@SriramSakthivel:請教育我,並解釋爲什麼你認爲'靜態'是一個壞主意? AFAIK,'base64ToImage'方法採用隨機輸入來處理和生成輸出,並且不依賴於其父類的任何成員,因此是靜態方法(Helper類設計模式)的完美候選。 – SNag 2014-10-22 11:24:10

+0

如果你向谷歌提出同樣的問題,你會得到很多答案。我的兩分錢[這裏](http://simpleprogrammer.com/2010/01/29/static-methods-will-shock-you/)和[幫手類也應該避免](http://simpleprogrammer.com/2010/04/12 /應-I-離開 - 即輔助類/)。 – 2014-10-22 11:26:38