为什么 csc2.exe 使用 dynamic 关键字退出并显示错误代码?

Why does csc2.exe exit with an error code with the use of the dynamic keyword?

    public void SearchApps(string query, object callback)
    {
        dynamic callbackFunc = callback;
        ThreadManager.QueryGamesAsync(query, mainForm.Portal, log, 
            (list) =>
            {
                string[] strList = new string[list.Length];
                for(int i = 0; i < strList.Length; i++)
                {
                    strList[i] = list[i].Uid;
                }
                string data = json.Serialize(strList);
                callbackFunc(data);
            });
    }

此方法导致 csc2.exe 以代码 1 退出,因此我无法编译它。知道出了什么问题吗?该方法是浏览器控件的 ScriptingObject 的一部分。这就是为什么回调是动态的。

我必须参考 "Microsoft.CSharp" 才能使用动态。