使用NINI和IsolatedStorage

时间:2012-07-09 10:16:34

标签: c# isolatedstorage nini

我正在尝试保存一些配置信息,我希望在IsolatedStorage中使用NINI库和文件。我不知道为什么但是当我尝试保存配置时,我在Nini Save方法上得到以下异常:Source无法保存在此状态

以下是代码:

        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()中发生异常; 。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

来自IniConfigSource(Stream)的构造函数文档:

  

除非您调用其中一个重载的Save方法,否则这是一个不可保存的来源。

所以,你可能想要Save(Stream)。在将流传递给Save之前,您可能希望将流回送到原点。


与您的评论相反,我尝试了这一点,并发现isfs流已被关闭(可能是由构造函数方法 - 它没有记录它将对流做什么) - 所以我得到了一个< em>不同的错误消息。这导致我重新初始化isfs,正如我所说,将其传递给Save方法:

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

它工作正常。