0

Windowsphone についてのエッセイを書いています。アドレスに画像を追加するためのURIを含むアドレス変数を作成しました。分離ストレージを使用してデータを保存すると、エラーが発生します。どうしてか分かりません。私を助けてください!どうもありがとう。

class Address
{
   private string name;
   private Uri icon;
   .....
}

……

public void save()
    {
        XmlWriterSettings xmlwritersetting = new XmlWriterSettings();
        xmlwritersetting.Indent = true;
            using (IsolatedStorageFile myisolatedstiragefile = IsolatedStorageFile.GetUserStoreForApplication())
        {

            if (myisolatedstiragefile.FileExists(filename))
            {
                myisolatedstiragefile.DeleteFile(filename);
            }

            using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(filename, System.IO.FileMode.OpenOrCreate, myisolatedstiragefile))
            {
                XmlSerializer serializer = new XmlSerializer(typeof(List<Adress>));
                using (XmlWriter writer = XmlWriter.Create(stream, xmlwritersetting))
                {
                    serializer.Serialize(writer, listadress);
                }
            }
        }
    }
4

1 に答える 1

0

あなたの質問を理解するのは少し難しいですが、試してみます。デバッガーで具体的にどのようなエラーが発生し、どこで発生したかを示す必要があります。

しかし、見ただけでは、XmlSerializer を使用してバイナリ イメージ データを iso-storage に書き込もうとしているように見えますが、おそらくうまくいきません。イメージ ファイルの書き込みなど、さまざまな目的で iso-storage を使用する多くの例をここで見つけることができます

たとえば、次のようにして JPG 画像を分離ストレージに保存できることを示しています。

    // Create a filename for JPEG file in isolated storage.
            String tempJPEG = "logo.jpg";             
    // Create virtual store and file stream. Check for duplicate tempJPEG files. 
           using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())            {
                if (myIsolatedStorage.FileExists(tempJPEG))                {
                    myIsolatedStorage.DeleteFile(tempJPEG);
            }  
               IsolatedStorageFileStream fileStream = myIsolatedStorage.CreateFile(tempJPEG); 
                StreamResourceInfo sri = null;
                Uri uri = new Uri(tempJPEG, UriKind.Relative);
                sri = Application.GetResourceStream(uri);
                 BitmapImage bitmap = new BitmapImage();
                bitmap.SetSource(sri.Stream);
                WriteableBitmap wb = new WriteableBitmap(bitmap);
                 // Encode WriteableBitmap object to a JPEG stream.
                Extensions.SaveJpeg(wb, fileStream, wb.PixelWidth, wb.PixelHeight, 0, 85);
                 //wb.SaveJpeg(fileStream, wb.PixelWidth, wb.PixelHeight, 0, 85);                fileStream.Close();
            } 
于 2012-11-20T20:56:29.787 に答える