我目前正在通过网址启动控制台应用程序,并尝试从该网址获取查询字符串。如果我使用URL和查询字符串设置变量,它可以正常工作,但是当我尝试使用浏览器中的URL调用它时,它会给我一个
System.NullReferenceException:未将对象引用设置为实例 对象
这里
string queryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query;
我在其他地方看到过这项工作(包括同事的VB应用程序),所以我知道我正走在正确的轨道上。任何帮助都将受到大力赞赏。
using System;
using System.Diagnostics;
using System.IO;
using System.Web;
using System.Deployment.Application;
using System.Collections.Specialized;
namespace DRFLoader
{
internal class Program
{
static void Main(string[] args)
{
if (ApplicationDeployment.IsNetworkDeployed)
{
string queryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query;
var DMNo = HttpUtility.ParseQueryString(queryString);
//Do stuff with DMNo here
}
else
{
string uri = "http://intra/drfloader/drfloader.application?1232222";
var queryString = new Uri(uri).Query;
var DMNo = HttpUtility.ParseQueryString(queryString);
//Do stuff with DMNo here
}
}
}
}
提前致谢, 丹
更新 - 异常数据如下:
Stacktrace:在DRF.Loader.Program.Main(String [] args) 数据:System.Collections.ListDictionaryInternal 消息:对象引用未设置为对象的实例。
这是否意味着它正在寻找某种类型的集合?
答案 0 :(得分:0)
我发现了问题,我的代码没有任何问题。它是单个复选框的诅咒
启用ClickOnce应用程序中的查询字符串传递 MageUI.exe打开.NET命令提示符并键入:
MageUI
从“文件”菜单中,选择“打开”,然后打开部署清单 你的ClickOnce应用程序,它是以。结尾的文件 .application extension。
在左侧导航栏中选择“部署选项”面板 窗口,然后选择允许传递给的URL参数 申请复选框。
从“文件”菜单中,选择“保存”。
或者,您可以在Visual Studio中启用查询字符串传递。 选中“允许传递给应用程序的URL参数”复选框, 可以通过打开项目属性找到,选择 单击“发布”选项卡,单击“选项”按钮,然后选择 清单。
基本上只是在最后一段中做了一点。