2011-11-07 1 views
1

나는 stackoverflow에서 찾은 모든 솔루션을 시도했지만 App_Data 폴더에서 만든 클래스에 액세스 할 수없는 것 같습니다.WebMatrix (면도칼) App_Data 폴더 내 클래스에 액세스 할 수 없습니다

나는 (클래스의 표시 부분)이 클래스가있는 경우 :

public class Encryption 
{ 
    public string Encrypt(string plainText, string Key) 
    { 
     byte[] key = StringToByteArray(Key); 
     string encrypted = ByteArrayToHexString(encryptStringToBytes_AES(plainText, key, null)); 
     return encrypted; 
    } 
} 

내가 좋아하는 코드 블록에 액세스 할 수 있어야합니다 :

@{ 
    Encryption enc = new Encryption(); 
    var data = enc.Encrypt("hello", "world"); 
} 

하지만 오류가 해당 유형 또는 네임 스페이스 "암호화"를 찾을 수 없습니다.

또한 네임 스페이스로 가져 오기를 시도했지만 네임 스페이스로 표시 할 수있는 응용 프로그램 이름을 얻지 못하는 것 같습니다. asp.net mvc에서 더 단순 해 보입니다.

필자는 설정 파일을 업데이트 할 때 찾을 수있는 모든 예제를 시도했지만 아무 소용이 없었습니다. 내가 여기서해야 할 일이 있니?

답변

5

마지막으로 대답을 찾았습니다. App_Code 폴더를 만들고 거기에 참조 할 수 있도록 클래스를 추가해야했습니다.

VS2010이 아닌 WebMatrix에서 앱을 만들었 기 때문에 생각합니다. 따라서 내 웹 사이트 (MyWebsite)의 이름은 VS2010에서와 같은 네임 스페이스와 같지 않습니다. 내가 유틸리티 나는 이것을 할 수 없다라는 폴더에 암호화 클래스를 세우면 그 의미 스타터 사이트를 사용하여 WebMatrix 응용 프로그램이 자동으로 App_Code 폴더를 추가하지 않습니다

@using MyWebsite.Utilities 

하는 것으로.

음, 다시 코딩!

2

App_data의 클래스는 컴파일되지 않습니다. 코드가 아닌 SQL CE, Express 데이터베이스 및 응용 프로그램 특정 데이터 용입니다. 루트에서 다른 폴더를 만들고 클래스 파일을 그곳으로 이동하거나 프로젝트의 루트에 놓습니다.

+0

원래 하위 폴더 (유틸리티)에 있었지만 코드를 볼 수 없었습니다. 나는 cs 파일이 app_data 폴더에 있어야한다는 것을 읽었으므로 거기로 옮겼지만 여전히 그것을 볼 수 없었다. 그래서 저는 그것을 루트로 옮겼고 클래스를 사용할 수 없습니다. –

+0

솔루션을 구축 했습니까 (Ctrl + Shift + B)? – Deleted

+0

예, 위에서 설명한 코드를 사용했는데 제대로 작동합니다. –