2011-12-25 3 views
0

xdocumentをxmlファイルに保存したいのですが、silverlightはxdoc.save(string str)の文字列型を受け入れていないようですので、それ、問題は、私はファイルストリームを入れたときに、私は「メソッドにアクセスしようとしましたが失敗しました」というエラーを得たことで、MethodeAccessExceptionがここに未処理だったことは、私のコードです:SilverlightにXDocumentを保存できません

私だけでSilverlightを使用しました
XDocument MainLBItems = XDocument.Load("SampleData/MainLBItems.xml");    
      MainLBItems.Root.Add(new XElement("Item", 
              new XElement("Title", this.tb_Title.Text), 
              new XElement("Dscrp", this.tb_Dscrp.Text), 
              new XElement("Count", "0"))); 
      FileStream fs = new FileStream("SampleData/MainLBItems.xml", FileMode.Open, FileAccess.Write); 
      MainLBItems.Save(fs); 

答えて

0

Windows Phone 7でも、私はと思われますデスクトップのSilverlightにも同じことが適用されます...フルデスクトップの.NETフレームワークと同じようにファイルを直接使用することはできません。代わりに、isolated storageを使用する必要があります。 (あまりにもストリームを使用して他のコードを調整します。)

using (var file = IsolatedStorageFile.GetUserStoreForApplication()) 
{ 
    using (var stream = file.OpenFile("file.xml", FileMode.Create)) 
    { 
     document.Save(stream); 
    } 
} 

+0

@Gabe:必ずしもそうではありません。アプリケーションが独自のファイルをロードすることは可能ですが、ファイルシステムに任意のデータを保存することはできません。 (私はXDocument.LoadがSilverlightで何をしているのか正確には分かりません。) –

+0

あなたの答えはこんにちはJonです。それは実際に未亡人の電話機7.1のSilverlightです。私はあなたのコードを試してみました。とにかくそれはIslatedStoregeFileStreamで操作されていない操作だと私に何をすればいいのか説明してもらえますか? –

+0

@Daoudi:ある事については、例外を投げたステートメントや、より多くの情報があるかどうかなど、例外自体で。これは* WP7でxmlファイルを保存する正しい方法なので、何かがうまくいかない。サブディレクトリでファイル名を使用している場合は、問題の原因となっている可能性があります。何が起こっているのか調べるためにいくつかのsimole診断を試してください。 –

0

あなたは分離ストレージに任意のファイルを保存することができます(an exampleのためのMSDNを参照)、またはあなたが尋ねるダイアログ「別名で保存」で開くことができます。たとえば、ユーザーがファイルに書き込むためのアクセス権。

XAPファイルまたはXAPが配信されたサーバーからXMLストリームを読み取っています。どちらの場合でも、あなたはそれらの場所に書き返すことができません。

関連する問題