Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF、StartupEventsArgs:Can';无法访问ActivationData。未处理的NullReferenceException_C#_Wpf_Xaml - Fatal编程技术网

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]。再次感谢。非常欢迎。它第一次工作,但在第二次构建之后,又遇到了同样的问题。