1

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.netmvcの方が簡単なようです。

設定ファイルを更新するために見つけたすべての例を試しましたが、役に立ちませんでした。ここで欠けていることをする必要がありますか?

4

2 に答える 2

5

私はついに答えを見つけました。参照できるようにするには、App_Codeフォルダーを作成し、そこにクラスを配置する必要がありました。

これは、VS2010ではなくWebMatrixでアプリを作成したためだと思います。したがって、私のWebサイトの名前(MyWebsite)は、VS2010のプロジェクト名のように名前空間と同じではありません。つまり、UtilitiesというフォルダーにEncryptionクラスを配置すると、これを実行できなくなります。

@using MyWebsite.Utilities

スターターサイトを使用するWebMatrixアプリは、App_Codeフォルダーを自動的に追加しないことに注意してください。

さて、コーディングに戻りましょう!

于 2011-11-07T17:19:51.943 に答える
2

App_dataのクラスはコンパイルされません。これは、コードではなく、SQL CE、Expressデータベース、およびアプリケーション固有のデータ用です。ルートから別のフォルダーを作成し、そこにクラスファイルを移動するか、プロジェクトのルートに配置します。

于 2011-11-07T00:06:55.540 に答える