私は社内アプリケーション用の構成XMLを管理する小さなクラスを作成しています。"Path to Deniedへのアクセスを拒否する" XDocument.Save()の2回目の反復
次のコードは、新しいtのリストがロードされるたびに呼び出され、新しいtのデータをシリアル化しようとします。
私は何か基本的なものが欠けていますが、私はどこにいるのか分かりません。
例外は、特定の行が 'doc.Save( "TaskData.xml")' で、このコード
if (!File.Exists(Path.Combine(Environment.CurrentDirectory + "TaskData.xml")))
{
XDocument doc = new XDocument();
XElement rootElement = new XElement("ConfigData",
new XElement("Servers"),
new XElement("Paths"));
doc.Add(rootElement);
doc.Save("TaskData.xml");
}
によってスローされます。
最初の繰り返しで、これはうまく動作し、コードはテンプレートファイルを作成します。
xmlファイルがディレクトリにある場合でも、File.Existsは「false」を返し、doc.Saveはアクセス許可例外をスローします。
ご協力いただきまして誠にありがとうございます。
うわー私はそれをキャッチしていないと信じることはできません...私はコピーし、問題を軽減するために、以前のバージョンから貼り付けたと思う。 また、実際に呼び出されているオーバーロードはPath.Combine(String [])シグネチャです。コンパイラが引数として単一の文字列を受け取り、暗黙的にキャストすることに驚いています。私は配列パラメータが非常に状況を拒否するメソッドをインスタンス化したことを見てきたことを誓うことができた。 – SurelyTheresABetterWay
@SurelyTheresABetterWay:これは 'params string []'です。これは問題ありません。もしそれがちょうど 'string []'だったなら、それはそれを使用していないでしょう。 –