C# WPF、StartupEventsArgs:Can';无法访问ActivationData。未处理的NullReferenceException
不是重复的C# WPF、StartupEventsArgs:Can';无法访问ActivationData。未处理的NullReferenceException,c#,wpf,xaml,C#,Wpf,Xaml,不是重复的 public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null && AppDomain.CurrentDomain.SetupInfor
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null
&& AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Length > 0)
{
string fname = "Something";
try
{
fname = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0];
Uri uri = new Uri(fname);
fname = uri.LocalPath;
this.Properties["tempPath"] = fname;
}
catch (Exception ex)
{
//Exception Handling
}
}
base.OnStartup(e);
}
}
我知道如何处理nullreferenceexception。请阅读整个问题,然后将其标记为重复。我想知道代码中的哪个元素引发了异常
我在尝试读取App.xaml.cs中的命令行参数/startupEventsArguments时遇到问题,无法找出代码的错误。相同的代码在另一个项目中工作,但在我当前的项目中不工作
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null
&& AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Length > 0)
{
string fname = "Something";
try
{
fname = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0];
Uri uri = new Uri(fname);
fname = uri.LocalPath;
this.Properties["tempPath"] = fname;
}
catch (Exception ex)
{
//Exception Handling
}
}
base.OnStartup(e);
}
}
编辑的代码
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null
&& AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Length > 0)
{
string fname = "Something";
try
{
fname = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0];
Uri uri = new Uri(fname);
fname = uri.LocalPath;
this.Properties["tempPath"] = fname;
}
catch (Exception ex)
{
//Exception Handling
}
}
base.OnStartup(e);
}
}
每当我尝试启动项目时,我都会收到一个NullReferenceException。我包括一个截图
有人能告诉我出了什么问题吗?嘿,tinku,在你的帖子中,你提到了阅读命令行args。在大多数情况下,可以从StartupEventArgs e、e.Args访问,我认为如果ActivationData为null,可能是因为ActivationArguments为null。也许检查null会对您有所帮助。我现在不在一台开着VS的电脑前,所以我不能在自己周围闲逛;我已经有一段时间没有抓取这些数据了。我只是玩了一下测试WPF应用程序。由于我已经有一段时间没有亲自做过这件事了,我相信在更新版本的.Net中情况已经发生了变化。如果它是来自您所在的关联的文件路径。我能够从中检索文件路径。当然,在我的测试项目中,我没有测试参数是否为空。this.Properties[“tempPath”]=e.Args[0];加文,成功了,谢谢。我想他们已经在更新版本的.net中更改了它,但我不确定。我检查的所有解决方案都从AppDomain获取了文件路径…ActivationData[0]。再次感谢。非常欢迎。它第一次工作,但在第二次构建之后,又遇到了同样的问题。