1

我正在尝试保存一些配置信息,并且希望在 IsolatedStorage 中使用 NINI 库和文件。我不知道为什么,但是当我尝试保存配置时,我在 Nini Save 方法上遇到以下异常:Source cannot be saved in this state

这是代码:

        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 回答