1

いくつかの構成情報を保存しようとしていますが、IsolatedStorage内でNINIライブラリとファイルを使用したいと思います。理由はわかりませんが、構成を保存しようとすると、NiniSaveメソッドで次の例外が発生しました。この状態ではソースを保存できません。

コードは次のとおりです。

        isf = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly | IsolatedStorageScope.Domain, null, null);
        var isfs = new IsolatedStorageFileStream("file.ini", FileMode.Create, isf);
        //Stream s = new StreamWriter(isfs);

        IConfigSource mainSource = new IniConfigSource(isfs);

        var config1 = mainSource.Configs["General"];

        if (config1 == null)
        {
            mainSource.AddConfig("General");
            config1 = mainSource.Configs["General"];
        }
        config1.Set("CW", CommentWidth);
        mainSource.Save();

        isfs.Close();

例外はmainSource.Save()で発生します。。何か案は?

4

1 に答える 1

1

のコンストラクターのドキュメントからIniConfigSource(Stream)

これは、オーバーロードされたSaveメソッドのいずれかを呼び出さない限り、保存できないソースです。

したがって、おそらく必要ですSave(Stream)。ストリームを に渡す前に、ストリームをオリジンにシークしたい場合がありSaveます。


あなたのコメントに反して、これを試してみたところ、isfsストリームが閉じられていることがわかりました(おそらくコンストラクターメソッドによって-ストリームに対して何をするかは文書化されていません)-別のエラーメッセージが表示されました。これにより、再初期化が行われ、前述のようにメソッドisfsに渡されました。Save

isfs = new IsolatedStorageFileStream("file.ini", FileMode.Create, isf);
((IniConfigSource)mainSource).Save(isfs);

そしてそれはうまくいきます。

于 2012-07-09T10:42:08.020 に答える