我想用F#开发Windows 8.1通用应用程序。所以我创建了F#便携式库。但遗憾的是我无法在其上打开Windows.Storage命名空间。
然后我创建了C#Windows Apps类库,在那里我实现了我需要的功能:
public static async Task<string> ReadFileToString(string filename)
{
StorageFile file = await StorageFile.GetFileFromPathAsync(filename);
string fileContent = "";
fileContent = await FileIO.ReadTextAsync(file);
return fileContent;
}
然后我想在我的F#可移植库中添加引用到这个C#库但是得到错误消息,
&#34;这是不可能的,因为该项目是为平台设计的 (.NETCore)与current(.NETPortable)&#34;
不同
可以使用F#开发Windows 8通用应用程序吗?
答案 0 :(得分:1)
这是我找到的解决方案。
这是f#库的代码:
namespace PortableLibrary1
open PCLStorage
type MyClass() =
member this.Do (filename : string) (text : string) =
let folder = FileSystem.Current.LocalStorage
async {
let! result = Async.AwaitTask(folder.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting))
result.WriteAllTextAsync(text) |> ignore
} |> Async.RunSynchronously
这是一个C#Store应用代码:
private void Button_Click(object sender, RoutedEventArgs e)
{
MyClass cls = new MyClass();
cls.Do("uuu.ii", "message of me");
}