Не удается получить доступ к моему классу в папке App_Data WebMatrix (бритва) - PullRequest
1 голос
/ 07 ноября 2011

Я перепробовал каждое решение, которое нашел в stackoverflow, но не могу получить доступ к классу, который создал в папке 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.

Я перепробовал все примеры, которые мог найти для обновления моего конфигурационного файла, но безрезультатно. Есть ли что-то, что мне нужно сделать, что я здесь скучаю?

Ответы [ 2 ]

5 голосов
/ 07 ноября 2011

Я наконец-то нашел ответ, мне пришлось создать папку App_Code и поместить туда класс, чтобы на него можно было ссылаться.

Я думаю, это потому, что я создал приложение в WebMatrix, а не в VS2010.Таким образом, имя моего сайта (MyWebsite) не соответствует пространству имен, как имя проекта в VS2010.Это означает, что если я помещу класс Encryption в папку с именем Utilities, я не смогу сделать это:

@using MyWebsite.Utilities

Обратите внимание, что приложение WebMatrix, использующее начальный сайт, не добавляет папку App_Code автоматически.

Ну, вернемся к кодированию!

2 голосов
/ 07 ноября 2011

Классы в App_data не компилируются. Это для баз данных SQL CE, Express и специфических данных приложения, а не кода. Создайте другую папку вне корня и переместите туда файл класса или поместите его в корень вашего проекта.

...