C#进程类的无效操作异常

Geo*_*ge2 17 .net c# process invalidoperationexception visual-studio-2008

当我使用VSTS调试器来查看类实例的属性时Process,许多属性都标有InvalidOperationException.为什么?我做错了吗?

我正在使用VSTS 2008 + C#+ .Net 2.0来开发控制台应用程序.

这是我的代码:

System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
myProcess.StartInfo.FileName = "IExplore.exe";
myProcess.StartInfo.Arguments = @"www.google.com";
myProcess.StartInfo.Verb = "runas";
myProcess.Start();
Run Code Online (Sandbox Code Playgroud)

以及调试器的屏幕截图:

在此输入图像描述

Jon*_*eet 33

如果您在调试器拍摄照片时实际启动了该过程?这是我希望在Start()调用方法之前看到的屏幕截图.

请注意,常见模式是创建一个ProcessStartInfo,填充它,然后调用静态Process.Start(startInfo)方法.这使得它在概念上更简单:在Process它被启动之前你没有看到它.

  • 他们绝对应该*不*返回默认值.如果他们这样做,可以假设这些值已经从实际过程中正确返回.你正在做的是相当于将一个空引用作为一个字符串请求它的长度...它没有一个,它不是一个字符串!类似地,你没有*一个进程来询问它的句柄计数等.例外是告诉你你做错了*:即在开始进程之前获取属性.这永远不会是一件有用的事情,而异常是一个比默认值更好的指标. (4认同)