偶然发现奇怪的错误。一些研究表明,当您篡改代码内存时,就会出现这种错误。我不做这样的事。
完整错误:
Cineman.ni.DLL 中发生“System.AccessViolationException”类型的未处理异常
附加信息:尝试读取或写入受保护的内存。这通常表明其他内存已损坏。
没有可用的堆栈跟踪。
这是一些代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Cineman.ViewModels
{
public class AirTime
{
public string Time { get; set; }
}
}
发生错误的代码:
public List<AirTime> AirTimes { get; set; }
public async Task<bool> GetDetailsAsync()
{
if (this.Year == null)
{
this.IsDetailsLoaded = "visible";
Uri uri = new Uri(this.DetailsUrl);
HttpClient client = new HttpClient();
HtmlDocument htmlDocument = new HtmlDocument();
HtmlNode htmlNode = new HtmlNode(0, htmlDocument, 1);
MovieData Item = new MovieData();
string HtmlResult;
try
{
HtmlRequest = await client.GetAsync(uri, _cts.Token);
HtmlResult = await HtmlRequest.Content.ReadAsStringAsync();
}
if (!(HtmlResult == null) && HtmlRequest.IsSuccessStatusCode)
{
await this.DownloadPosterAsync();
htmlDocument.LoadHtml(HtmlResult);
this.LargePoster = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='cinema_img']/a").GetAttributeValue("href", "No poster image");
await this.DownloadLargePosterAsync();
htmlNode = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='sessions_day']/table/tbody");
if (this.Today)
{
foreach (var child in htmlNode.ChildNodes)
{
var time = new AirTime();
//time.Time = DateTime.Parse(child.SelectSingleNode("td[1]").InnerText);
time.Time = child.SelectSingleNode("td[1]").InnerText;
this.AirTimes.Add(time); //Error fires up here
//this.AirTimeText += child.SelectSingleNode("td[1]").InnerText + " ";
}
}
this.IsDetailsLoaded = "Collapsed";
}
}
return true;
}
到目前为止我尝试过的:
1.我删除了类和属性并重新制作了。没有运气。
2.我评论了一段抛出错误的代码,一切正常。
3. 我未选中 JIT 优化。没有帮助。
4.我检查了所有变量,它们不为空,所有类型转换到位
5. 阅读大量相关文章和帖子:)
6.我什至重新启动了电脑、手机,删除了隔离存储,尝试在手机上部署发布包而不是调试。
我没有尝试的是尝试在模拟器上启动应用程序,因为我有 Win 8 并且无法访问我的桌面。
这不是公共财产吗?
public List<AirTime> AirTimes { get; set; }
创建一个类变量并实例化它:
private List<AirTime> mobjAirTimes = new List<AirTime>;
然后从你的财产中归还它。
public List<AirTime> AirTimes
{
get
{
return mobjAirTimes ;
}
set
{
mobjAirTimes = value;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)