使用.net4.5.1编译lean提供的示例遇到的问题

dongdong01
  • 3
新手上路,请多包涵

我的环境:vs2013 + .net4.5.1 + AVOSCloud.NetFx45.0.0.2-beta
使用代码为直接从lean cloud上copy的示例,

byte[] data = System.Text.Encoding.UTF8.GetBytes("AVOSCloud is a great cloud service!");
AVFile file = new AVFile("mytxtFile.txt", data, new Dictionary<string, object>()
{
{"author","AVOSCloud"}
});
AVObject book = new AVObject("book");
book["content"] = file;

AVACL acl = new AVACL();
acl.PublicReadAccess = true;
acl.SetWriteAccess(AVUser.CurrentUser, true);
book.ACL = acl;
await book.SaveAsync();

编译和使用过程中遇到了两个问题:

问题一、编译错误,错误如下:
错误 1 “await”运算符只能用于异步方法中。请考虑用“async”修饰符标记此方法,并将其返回类型更改为“Task”。

出错的地方为:
await file.SaveAsync().ContinueWith

问题二、运行出错,

把上面一行的await去掉后能编译通过,但是执行有问题,我在项目中建了一个名为"book"的表,其中一列的名字为"content",类型选“file”,但运行后发现表中并没有把文件"mytxtFile.txt"传上去,接下来又做了其他实验,删除"content",添加一个类型为“number”的域“id”,使用book["id"] = 88,这个时候值是能更新到数据表"book"中的,貌似“file”类型就不可以。

麻烦哪位大牛帮忙指导一下,不胜感激!

回复
阅读 3.7k
2 个回答
✓ 已被采纳
  1. 检查你这段代码的方法定义 是否有 async关键字 并且返回类型是 Task<>
  2. 这个bug是你改出来的 解决第一个问题就行
dongdong01
  • 3
新手上路,请多包涵

多谢解答,你说的对,原来方法的定义部分少加了async,问题已解决,多谢!

你知道吗?

宣传栏