Xamarin.iOS中的异步方法抛出System.ExecutionEngineException

时间:2013-09-11 08:20:00

标签: c# xamarin.ios

下一行代码

var response = await _restService.GetAsync<IdentificationResponseDto>(identificationUri, new CancellationToken());

抛出:

  

抛出了System.ExecutionEngineException   注意JIT编译方法....使用--aot-only运行。

我的休息服务GetAsync方法是:

 public async Task<T> GetAsync<T>(Uri url, CancellationToken cancellationToken) where T : new()
    {
        var client = new HttpClient();
        var response = await client.GetAsync(url, cancellationToken);
        var responseString = await response.Content.ReadAsStringAsync();

        return ProcessResult<T>(responseString);
    }

private T ProcessResult<T>(string responseString) where T : new()
    {
        if (!string.IsNullOrWhiteSpace(responseString))
        {
            return _converter.DeserializeObject<T>(responseString);
        }

        return default(T);
    }

public T DeserializeObject<T>(string inputText)
    {
        return JsonConvert.DeserializeObject<T>(inputText, Settings);
    }

在模拟器上运行时一切正常,但是当尝试在设备上调试(ipad2)时,我得到了错误。我还尝试将GetAsync方法设置为仅允许类类型 在没有帮助的情况下使用“where T:class,new()”。

JsonConvert取自Json.Net库。

重要的是,当我使用

初始化我的restService时
RestService _restService = new RestService(...)

一切正常,没有错误,但是当我使用

初始化它时
IRestService _restService = new RestService(...)

其中IRestService是一个接口,发生错误。

任何帮助?

0 个答案:

没有答案