ScriptSharp 0.7.1和AjaxRequestCallback <object>编译失败</object>

时间:2011-05-03 15:57:49

标签: script#

我正在尝试将我的ScriptSharp版本从0.6.2升级到0.7.1,以利用新的泛型功能。我遇到的最后一个问题是我不知道如何解决这个问题:在进行Ajax调用时,编译器失败并显示消息“检查您的C#源编译并且您没有使用不支持的功能”。< / p>

以下是代码:

jQuery.Ajax(
            new jQueryAjaxOptions(
                "url", url,
                "type", "GET",
                "dataType", "html",
                "contentType", "application/json",
                "processData", false,
                "success", (AjaxRequestCallback<object>)delegate(object result, string textData, jQueryXmlHttpRequest<object> XMLHttpRequest)
                {
                    container.Html(XMLHttpRequest.ResponseText);

                    Type.InvokeMethod(null, "ajaxUnBlock", null);
                },
                "error", (AjaxErrorCallback<object>)delegate(jQueryXmlHttpRequest<object> request, string textData, Exception e)
                {
                    //Debug.TraceDump(XMLHttpRequest);
                }
            )
        );

我知道是造成这种情况的代表。如果我要填充jQueryAjaxOptions的属性(而不是提供键/值的字典),那么当我双击错误窗口中的错误时,它会指向指定成功委托的行。

我似乎能够通过创建一个方法而不是使用匿名委托来解决它,并且编译器错误消失了,但我想避免走这条路,如果可能的话,因为我有大量的必须以这种方式转换的代码。

有没有人有这方面的经验,可以让我知道为什么会发生这种情况,有什么办法可以让我的匿名代表再次编译?

非常感谢提前

修改 使包含此匿名委托 static 的函数可以解决此问题。在研究这个问题时,我在Github(https://github.com/NikhilK/scriptsharp/issues/22)上发现了一个看似相关的封闭问题 - 我现在唯一不确定的是这种行为是否有意。

0 个答案:

没有答案