我在Win8 / Wp8应用程序中使用PCLStorage,但为了简单起见,我将仅针对Win8提出问题。
我在Win8项目和PCL项目中引用了PCLStorage包。在我的PCL项目中,我正在创建一个文档管理类来处理文件的保存/检索。
private IFileSystem LocalFileSystem { get; set; }
protected IFolder RootFolder { get; set; }
protected IFolder RoamingFolder { get; set; }
public DocStorageManager()
{
LocalFileSystem = FileSystem.Current;
RootFolder = LocalFileSystem.LocalStorage;
RoamingFolder = LocalFileSystem.RoamingStorage;
}
调试时,我看到LocalFileSystem
被设置为PCLStorage.WinRTFileSystem
的实例。 RootFolder
和RoamingFolder
显示为无法评估表达式。
现在,如果我进入立即窗口并输入FileSystem.Current.LocalStorage
,我会获得一个有效的WinRTFolder,其中包含我本地存储的路径:
FileSystem.Current.LocalStorage
Name = "LocalState"
[PCLStorage.WinRTFolder]: Name = "LocalState"
Name: "LocalState"
Path: "C:\\Users\\myuser\\AppData\\Local\\Packages\\1957d424-34d5-4856-9186-4a64dfaf1ae7_q5jzzq53vdxma\\LocalState"
然而我不能简单地指定RootFolder = FileSystem.Current.LocalStorage
因为它然后再说无法评估表达式。
听起来有一个我不理解的基本行为。我应该如何构建它以便根据需要使用它?
非常感谢!