2013-03-12 1 views
0

내 웹 응용 프로그램에서 공용 클래스 내에서 공용 함수를 호출하려고하지만 어떤 이유로도 함수를 액세스 할 수 없지만 클래스에 도착하면 함수는 공개로 표시됩니다. FileUploader을 호출 할 때 주어진 옵션은 equals 및 referanceequals뿐입니다. 내가 바라는게 어리석은 짓이야? 클래스가 내 응용 프로그램의 클래스라는 보조 프로젝트에 있지는 마십시오. 나는 FileUploader가있는 프로젝트에 차이 클래스에 액세스하는 데 문제가 없습니다.다른 클래스의 공용 함수에 액세스 할 수없는 이유를 알아낼 수 없습니다.

using System; 
using Microsoft.WindowsAzure.Storage; 
using Microsoft.WindowsAzure.Storage.Auth; 
using Microsoft.WindowsAzure.Storage.Blob; 
using Microsoft.WindowsAzure; 
using System.IO; 
using System.Configuration; 
using FFInfo.Classes; 

namespace FFInfo 
{ 
    public partial class FUTest : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 

     protected void btnSubmit_Click(object sender, EventArgs e) 
     { 
      if (fuFile.HasFile) 
      { 

      } 
     } 
    } 
} 

FileUploaders.cs

using FFInfo.DAL; 
using FFInfo.DAL.Tables; 
using Microsoft.WindowsAzure.Storage; 
using Microsoft.WindowsAzure.Storage.Blob; 
using System; 
using System.Web; 

namespace FFInfo.Classes 
{ 
    public class FileUploader 
    { 
     public Int64 UploadSiteImage(string ConnectionString, string ContainerName, string FilePath, HttpPostedFile UploadedFile) 
     { 
      CloudStorageAccount SiteImages = CloudStorageAccount.Parse(ConnectionString); 
      CloudBlobClient SiteImagesBlob = SiteImages.CreateCloudBlobClient(); 
      CloudBlobContainer SiteImageContainer = SiteImagesBlob.GetContainerReference(ContainerName); 
      SiteImageContainer.CreateIfNotExists(); 
      CloudBlockBlob Image = SiteImageContainer.GetBlockBlobReference(FilePath + UploadedFile.FileName); 

      using (UploadedFile.InputStream) 
      { 
       Image.UploadFromStream(UploadedFile.InputStream); 
      } 

      using (var db = new Compleate()) 
      { 
       File NewFile = new File() 
       { 
        ContainerName = ContainerName, 
        FilePath = FilePath, 
        FileName = UploadedFile.FileName, 
        ContentType = UploadedFile.ContentType 
       }; 

       db.Files.Add(NewFile); 
       db.SaveChanges(); 
       return NewFile.FileID; 
      } 
     } 
    } 
} 
+0

다른 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 '빌드'를 선택하십시오. 그렇지 않은 경우 개체를 인스턴스화하는 위치를 확인해야합니다. –

+1

정적 인 것을 기대하는'UploadSiteImage'를 호출하거나, 메서드의 변경자를 변경해야하거나'new FileUploader(). UploadSiteImage (...)'를 호출해야합니다. 그리고 어디서나 정의 된'HasFile'을 보지 못했습니다 ... –

답변

1

당신은 아마 UploadSiteImage 방법에 대한하셨습니까하는 정적이란?

+1

예 정적 호출이었습니다. 너 한테 멍청한 걸 잃어버린 줄 알았어. –

0

시도해보십시오 (새 FileUploader()). < - 여기에 intelisense 얻을 것이다.

그래, 그 방법은 공개 정적 이길 바랄거야