虽然我有C#的经验,但我现在才开始探索在Windows 8,Windows Phone和Xamarin下的开发。
我正在尝试编写一个可在Ios,Android,Windows Phone和Windows 7及更高版本上运行的可移植类库。
在我的项目早期,在尝试设置一些基本的单元测试时,我遇到了IsolatedStorage。好的,我可以将我的文件存储在IsolatedStorage中。但Windows 7和8没有这个类(我可以看到)。 (由于这个障碍,我暂时切换到dll。一旦我得到这些问题的答案,我将回到pcl。)
所以现在我想要抽象文件系统,这样当我定位不同的目标时,它应该使用IsolatedStorage,而应该使用Windows文件系统。
另外,关于单元测试(我在Debug Configuration中进行测试),我可以把目录放在任何地方,所以我可以选择,Directory.GetCurrent()我想。但我不想这么想。
现在我的问题:(有两个)
处理此问题的建议方法是什么 - 获取适用于所有目标的应用程序数据的单个根目录?
我想要一些用于测试的文件,这些文件保存在我的解决方案目录的子目录中。在我的抽象类(不是抽象类,但是文件系统抽象类)中,我应该有这样的代码:?
AbstractedFileSystem abstractRootPath;
#if DEBUG
String abstractRootPathString = Directory.GetCurrentDirectory();
abstractRootPath = AbstractedFileSystem.CreateFromString(abstractRootPathString);
#else
abstractRootPath = AbstractedFileSystem.CreateFromIsolatedStorage();
#endif