因此,这可能不是我的代码的实际问题,但Xamarin Live Preview应用程序不正确。我有一个非常小的表单项目,大多数硬编码实际上是一个.Net标准库,我作为Nuget包提供。我的核心课程有一个事件会在一切准备好进入课堂时触发。我原本以为null引用来自我的类的创建,然而,我发现了1行有所作为。注释掉事件订阅并且一切正常,此应用程序也可以在模拟器或Win10应用程序中正常工作。
查看您可能认为的所有代码我的SnappleApi
对象是空引用,但在我的所有调试中它总是有一个值。反对这一点的另一个主要论点是模拟器/本地构建运行得很好。
Visual Studio没有看到任何错误,它从未在事件订阅之后点击任何内容。实时预览应用程序显示,"可视化错误:空引用异常"。
我在Forms项目中的启动代码:
public MainPage()
{
//Starts this bad boy up
InitializeComponent();
//Sets the seconds remaining equal to the initial auto refresh period
SecondsRemaining = AutoRefreshInterval;
//Builds the api that is used for calling upon the snapple facts
SnappleApi = new SnappleEngie();
//Setups the trigger that is fired when the facts are available for usage
SnappleApi.OnFactsLoaded += FactsAvailable;
}
该事件代码是什么样的:
private void FactsAvailable(object sender, bool isReload)
{
UpdateFact();
if (SnappleApi.HasFacts)
{
//Start auto fact ticker
AutoFactTimer = new Timer(AutoFactTick, null, 0, (int)TimeSpan.FromSeconds(1).TotalMilliseconds);
}
}
最后UpdateFact代码是什么样的:
private void UpdateFact()
{
Device.BeginInvokeOnMainThread(new Action(() =>
{
if (SnappleApi.HasFacts)
{
FactText.Text = GetNewRandomFact().ToString();
}
else
{
FactText.Text = "There was an error loading facts from the Snapple Servers.";
}
}));
}