我正在尝试保存一些配置信息,我希望在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()中发生异常; 。有什么想法吗?
答案 0 :(得分:1)
来自IniConfigSource(Stream)
的构造函数文档:
除非您调用其中一个重载的Save方法,否则这是一个不可保存的来源。
所以,你可能想要Save(Stream)
。在将流传递给Save
之前,您可能希望将流回送到原点。
与您的评论相反,我尝试了这一点,并发现isfs
流已被关闭(可能是由构造函数方法 - 它没有记录它将对流做什么) - 所以我得到了一个< em>不同的错误消息。这导致我重新初始化isfs
,正如我所说,将其传递给Save
方法:
isfs = new IsolatedStorageFileStream("file.ini", FileMode.Create, isf);
((IniConfigSource)mainSource).Save(isfs);
它工作正常。