Usuário com melhor resposta
XmlDocument as vezes salva e as vezes não (será pau do FrameWork 2.0) ???????

Pergunta
-
Pessoal tô usando o VS 2005, em windows forms, framework 2.0, e usando um arquivo xml, tô conseguindo fazer tudo, inclusive salvar e alterar o xml, exceto na minha tela de login onde quero salvar algumas variáveis após o login do usuário.
mas o que acontece é que após o XmlDocument.Save("meuArquivo.xml"); as variáveis não estão sendo salvas, e em modo de depuração se eu deixar o cursor abaixo do método Save, eu verifico que arquivo xml e os valores são alterados, mas se eu tiro o modo debug e deixo em modo normal o arquivo mxl não é alterado.
Pra ter a certeza coloquei o método System.Diagnostics.Debug.Print("Variavel1 = " + minhaVar1); pra verificar os valores das variáveis em tempo de execução após o método save( ) e é mostrado o valor salvo corretamente, porém ao abrir o arquivo físico o mesmo não está sendo alterado.
será que tô fazendo algo de errado, ou o framework 2.0 que tá dando pau ??
Segue abaixo trecho de meu código !!! e lembrando que o código funciona em outros locais de minha aplicação.
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Application.StartupPath + "\\ArquivoXml.xml");
xmlDoc["Cliente"]["setSenha"].InnerText = Variaveis.config.setSenha;
xmlDoc["Cliente"]["setIpRemoto"].InnerText = Variaveis.config.setIpRemoto;
xmlDoc["Cliente"]["setSSenha"].InnerText = Variaveis.config.setSSenha.ToString();
xmlDoc["Cliente"]["setSRamal"].InnerText = Variaveis.config.setSRamal.ToString();
xmlDoc["Cliente"]["setSenhaIntervalo"].InnerText = Variaveis.config.setSenhaIntervalo.ToString();
xmlDoc.Save(Application.StartupPath + "\\ArquivoXml.xml");
Respostas
-
Ok Obrigado a todos, tentei diversas vezes e não consegui achar onde estava errado porém pude verificar o seguinte:
Tenho duas função que utilizam o arquivo xml:
a Primeira lê o arquivo e carregas algumas variáveis globais.
a Segunda pega o conteúdo das variáveis globais e salva no xml
o erro começou a acontecer depois que criei um novo xmlDocument para ler apenas 2 variaveis do arquivo e salvar.
(para essas 2 variaveis do arquivo ainda não havia criado global no meu aplicativo)
ou seja antes eu chamava assim:
funçãoLêXml()
funçãoSalvaXml()
depois começei a chamar assim:
funçãoLêXml()
cria xmlDocument (Lê e Salva)
funçãoSalvaXml()
aí começou a dar esse pau de não salvar as anteriores, ou seja, foi um erro de lógica meu, mas na minha visão deveria salvar de qualquer maneira.
Mas de fato, criei mais 2 variáveis globais, chamo como chamava anteriormente.
Obrigado pela atenção de todos.
Todas as Respostas
-
Edson,
Só especulando: você está verificando o arquivo XML nas pastas Debug e Release ? Se estiver em modo Debug, a sua aplicação salvará o arquivo na pasta Debug, do contrário salvará na pasta Release.
Imaginei que talvez você estivesse verificando o arquivo no local errado.
Att.
Ari -
Ok Obrigado a todos, tentei diversas vezes e não consegui achar onde estava errado porém pude verificar o seguinte:
Tenho duas função que utilizam o arquivo xml:
a Primeira lê o arquivo e carregas algumas variáveis globais.
a Segunda pega o conteúdo das variáveis globais e salva no xml
o erro começou a acontecer depois que criei um novo xmlDocument para ler apenas 2 variaveis do arquivo e salvar.
(para essas 2 variaveis do arquivo ainda não havia criado global no meu aplicativo)
ou seja antes eu chamava assim:
funçãoLêXml()
funçãoSalvaXml()
depois começei a chamar assim:
funçãoLêXml()
cria xmlDocument (Lê e Salva)
funçãoSalvaXml()
aí começou a dar esse pau de não salvar as anteriores, ou seja, foi um erro de lógica meu, mas na minha visão deveria salvar de qualquer maneira.
Mas de fato, criei mais 2 variáveis globais, chamo como chamava anteriormente.
Obrigado pela atenção de todos.