You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.

Forum Discussion

malindor's avatar
malindor
New member | Level 2
6 years ago

Newbie Question: Compiler error when going from sample to project.

I appolgize if this is not the correct forum for this question. As the issue came up working with the APIs here, I figured I would start here and go elsewhere if necessary.

I'm using the latest .NET dropbox.api library on VS 2019. I have been asked to create a in-house library for other developers to use until we can put together some in-house formal training for everyone on Dropbox's APIs. I've read through the documentation and the sample GitHub code. I reproduced the example and got it working. Everything's good. The working code (abridged for brevity):

static void Main(string[] args) {
    var task = Task.Run((Func<Task>)Program.Run);
    task.Wait();
}

static async Task Run() {
    using (var dbx = new DropboxClient("MyAccessToken")) {
        await CreateFolder(dbx, "/2019-11-07");
        Console.ReadKey();
    }
}

So I move on to starting to build a basic library and will add all the bells and whistles after getting a few functions to work. This is where the problem is. I created what I thought was a similar entry point but now I'm getting a compiler error The erroring code:

public int CreateFolder(string strPath, string FileName) {
    try {
        var task = Task.Run((Func<Task>)SoDropbox.CF(Path.Combine(strPath,FileName)));
        task.Wait();
    }
    catch(Exception e) {
        return -1;
    }
    return 1;
}

static async Task CF(string strPath) {
    using (var dbx = client) {
        var folderArg = new CreateFolderArg(Path);
        var folder = await dbx.Files.CreateFolderV2Async(folderArg);
    }
}

The error that I am getting is in the first line of the try block or the CreateFolder method. The error is: Cannot convert type 'System.Threading.Tasks.Task' to 'System.Func<System.Threading.Tasks.Task>'

I'm sure this has more to do with my lack of understanding of the Func delegate and asynchronous Tasks but I am not seeing what the difference is between the working code and the new code.

Any help would be appreciated and, like I said, if this is not appropriate for this forum just let me know.

  • It looks like this is more about managing tasks in .NET/C#, and not really about using the Dropbox API itself, so I'm afraid I can't really be of help here. This question may be better suited somewhere where you can get general .NET/C# programming advice, such as StackOverflow. Apologies I can't be more useful!

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    It looks like this is more about managing tasks in .NET/C#, and not really about using the Dropbox API itself, so I'm afraid I can't really be of help here. This question may be better suited somewhere where you can get general .NET/C# programming advice, such as StackOverflow. Apologies I can't be more useful!

    • malindor's avatar
      malindor
      New member | Level 2

      No worries.  I wasn't sure and doesn't hurt to ask.  Thanks for your time.

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

5,910 PostsLatest Activity: 4 days ago
333 Following

If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.

For more info on available support options for your Dropbox plan, see this article.

If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!