c# - 如何从 URL 调用中捕获参数

标签 c# .net url registry

我有一个依赖于由自定义 URL 协议(protocol)调用的应用程序;引用见this post 。注册表链接有效,但是当我尝试从 URL 捕获传递的参数时(例如,我在浏览器中启动 customurl://param1=xy&param2=xy),我似乎使用下面的代码失败了;

Program.cs

static void Main(string[] args) {
    [...]
    Application.Run(new Form1(args));
} 

Form1.cs

public Form1(string[] args) {
    [...]
    if (args.Length > 0) {
        string name = args[0];
        label1.Text = "received paramter: " + name;
    } else {
        label1.Text = "no received parameter!";
    }
}

条件始终选择 else 分支,这意味着 args[]数组不包含任何传递的参数。我究竟做错了什么?在给定这些条件的情况下,是否有另一种特定方法来捕获参数?

最佳答案

您观察到的行为可能是由于忘记注册表中的“%1” 造成的。 “%1” 是 URL 的占位符。如果您忘记包含它,该 URL 将不会传递给您的处理程序。

这是另一篇具有类似说明的 SE 帖子 How do I register a custom URL protocol in Windows?它准确地向您显示了需要放置 "%1" 的位置。

关于c# - 如何从 URL 调用中捕获参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69740270/

相关文章:

php - 如何使用友好的 URL?

php - 如何检测 php curl 中的 URL Not Found 错误?

c# - 字符串格式 : Hexadecimal ("X") Format Specifier and Zero (0)

c# - 如何从 MVC 将数据发布到 Action URL

.net - MS StyleCop 和 CruiseControl.NET

c# - 将 WM_GETFONT 与标准平面样式一起使用时出现问题

c# - 检索字体的文件名

c# - WebApiConfig.Register() 与 GlobalConfiguration.Configure()

c# - EF - 另一个一对多内的一对多关系(Facebook 帖子/ react )

regex - 用于验证 URL 中的 '/' 的正则表达式