2017-03-02 8 views
0

jsonファイルはProjectフォルダに格納されています。jsonドキュメントのデータを逆シリアル化します.jsonドキュメントのパスを取得中にエラーが発生します。プロジェクトフォルダにローカルに保存されているjsonドキュメントのデータを逆シリアル化する方法

私はこのコードを使用してエラーを得た「型 『System.IO.DirectoryNotFoundException』の例外ががmscorlib.dllで発生したが、ユーザーコードで処理されなかった」コードの下

 string file = HttpContext.Current.Server.MapPath("~/project.Services/xyz/myjsonfile.json"); 

      using (StreamReader reader = new StreamReader(file)) 
      { 
       collection = JsonConvert.DeserializeObject<Dictionary<string, string>>(reader.ReadToEnd());    
      } 
+0

ありがとうございました。したがって、MapPath()に "project.Services ..."を入力できるはずです。また、パスが正しいかどうかを調べるために、ケースの "file"文字列の値を調べてみてください。 – Michael

+0

マイケルに感謝しますが、それも同じエラーを出しました。 – Soumika

+0

"file"の値を表示しようとしましたか? Windowsフォームでは、 "MessageBox.Show(file)"を実行できます。それ以外の場合は、 "using"を右クリックして "Run to cursor"を選択し、デバッガが実行中にカーソル位置に来ると "file"をマウスで移動します。ここでエラーメッセージに含めるのを忘れたことは、エラーが生成された正確な行です。私は "新しいStreamReader(ファイル)"を推測しています。エラー発生時にコードを表示するときは、「呼び出しスタック」の項目をダブルクリックして、エラーの発生場所を確認します。 – Michael

答えて

0

のために働いていました
  using (Stream stream = this.GetType().Assembly.GetManifestResourceStream(this.GetType().Assembly.GetName().Name + "." + filename)) 
     {using (StreamReader reader = new StreamReader(stream)) 
      { 
       collection = JsonConvert.DeserializeObject<Dictionary<string, string>>(reader.ReadToEnd()); 
      }} 

は、私はMapPathの()を使用すると、私は、 "〜"(チルダ)文字を使用していないマイケル

関連する問題