1

私は最初のアプリとして簡単な天気予報アプリを作成しようとしています。http リクエストの数をできるだけ少なくする必要があるため、アプリ内で isolatedStorageSetting を使用して、リクエストされたデータと最後のリクエストの日時を保存しています。アプリがリクエストを開始する前に、このファイルを調べて、最後のリクエストがいつだったかを尋ね、120 分経過したら新しいリクエストを開始します。これらはすべてアプリ内で完全に機能しますが、ライブ タイルを更新してバックグラウンドで画面をロックするスケジュール タスクを実装する必要があります。ただし、バックグラウンド エージェントがデータを要求する前に、このファイルを調べて最後の更新を要求し、要求後にデータを書き換える必要があります。そこで必要なのは、アプリとバックグラウンド エージェントによる読み取りと書き込みに使用できるファイルです。ミューテックスが必要になったので、続けます...しかし、私の質問は

  1. この場合に適切な種類のファイルまたはデータベースは何ですか? (isolatedStorgeSettings、isolatedStorgeFile など)

  2. このファイルをどこで生成する必要がありますか? (MainPage.xaml.cs 内、または Class Lib. Project が必要ですか)

  3. アプリとバックグラウンド エージェントからこのファイルのエントリを読み書きするための構文はどのようになっていますか?

わかりました、穴のトピックを段階的に理解するためのテストとして、この例があります...

  1. これを含むクラスライブラリ「DataLib」があります:

    名前空間 DataLib { パブリック クラス DataLib {

    public static string DatenHolen(string DatenPacket)
    {
        IsolatedStorageFile WetterDatenDatei = IsolatedStorageFile.GetUserStoreForApplication();
    
        try
        {
            //Create == Create OR Overwrite
            IsolatedStorageFileStream myStream = new IsolatedStorageFileStream("datei1.txt", System.IO.FileMode.Create, WetterDatenDatei);
            StreamWriter writer = new StreamWriter(myStream);
            writer.Write("Inhalt der Datei");
            writer.Close();
        }
        catch (Exception)
        {
            MessageBox.Show("Fehler beim Schreiben der Datei");
        }
    
        try
        {
            IsolatedStorageFileStream myStream = new IsolatedStorageFileStream("datei1.txt", System.IO.FileMode.Open, WetterDatenDatei);
            StreamReader reader = new StreamReader(myStream);
            DatenPacket = reader.ReadToEnd();
            reader.Close();
        }
    
        catch (Exception)
        {
            MessageBox.Show("Fehler beim Auslesen der Datei");
        }
    
        return DatenPacket;
    }
    

    } }

  2. DataLib への参照があり、これを含む MainPage.xaml.cs を含むアプリ自体があります。

    DataLib を使用します。

...

txt_Test.Text = DataLib.DataLib.DatenHolen();

この行はエラーを生成します。テキストボックス「txt_Test」内に生成された文字列を表示したくありません。私の間違いはどこですか?

4

2 に答える 2