私はこの厄介な小さな問題を手伝ってくれることを願っています。 XML設定ファイルにファイルパスを書き込もうとしていますが、何も起こりません。エラーメッセージやJust in Timeデバッグウィンドウは表示されません。そのコードブロックは実行されません。XmlWriterを使用してXMLファイルにファイルパスを書き込む
プログラム機能は、ユーザーアカウントを設定し、各アカウントのファイルを選択する機能です。ファイルパスを空白のままにしておくと、問題なくXMLファイルが作成されます。ただし、書き込むパスが1つでもあれば、ファイルは作成されません。ここで
は私の関数のサンプルです:
private void SaveSettings()
{
XmlWriterSettings xml_settings = new XmlWriterSettings();
xml_settings.Indent = true;
xml_settings.IndentChars = (" ");
using (XmlWriter xml_settings_file = XmlWriter.Create("settings.xml", xml_settings))
{
xml_settings_file.WriteStartElement("Main_Node");
xml_settings_file.WriteElementString("SettingA", Properties.Settings.Default.SettingA.ToString());
xml_settings_file.WriteElementString("SettingB", Properties.Settings.Default.SettingB.ToString());
xml_settings_file.WriteElementString("SettingC", Properties.Settings.Default.SettingC.ToString());
for (int i = 1; i < Properties.Settings.Default.UserAccounts.Count; i++)
{
xml_settings_file.WriteElementString("Account", System.Security.SecurityElement.Escape(Properties.Settings.Default.UserAccounts[i].ToString()));
xml_settings_file.WriteElementString("File", System.Security.SecurityElement.Escape(Properties.Settings.Default.FilePaths[i]));
}
xml_settings_file.WriteEndElement();
xml_settings_file.Flush();
}
}
物事はさらに混乱にするために、私はシンプルな「テスト」という文字列をファイルパス変数を交換する際に、それが正常に動作し、ファイルは問題なく作成されます。
エスケープしないでxmlエンティティをエンコードする必要があります – vittore
コードをステップ実行するとどうなりますか?あなたの 'SaveSettings'メソッドを呼び出しますか?それはループに到達し、その後神秘的に終了しますか?このポイントの後に実行される可能性のあるコードを実行するか、そこでのすべての処理を終了しますか? – Chris
私は、あなたの 'の前に' 1 'で始まり、 'File'と' Account'の値を二重にエスケープするのは間違っています。あなたは 'SaveSettings'がまったく実行されているのですか?あなたはデバッガを歩き、どこで止まるのか見てみましょうか? –