UriBuilderExtended 1.2.1

dotnet add package UriBuilderExtended --version 1.2.1                
NuGet\Install-Package UriBuilderExtended -Version 1.2.1                
此命令打算在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="UriBuilderExtended" Version="1.2.1" />                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件以引用包。
paket add UriBuilderExtended --version 1.2.1                
#r "nuget: UriBuilderExtended, 1.2.1"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将此内容复制到交互式工具或脚本的源代码中,以引用包。
// Install UriBuilderExtended as a Cake Addin
#addin nuget:?package=UriBuilderExtended&version=1.2.1

// Install UriBuilderExtended as a Cake Tool
#tool nuget:?package=UriBuilderExtended&version=1.2.1                

UriBuilderExtended

扩展 .NET 的 System.UriBuilder

需要维护者!

  • 您愿意维护 UriBuilderExtended 吗?
  • 或者将其包含在您自己的库项目中,如果适用?
  • 您是微软员工,并希望将此代码放入 UriBuilder 中吗?

如果您对以上任何一个问题的答案为“是”,那么非常欢迎!我已经转变了方向,不再使用 C# 和 .NET。因此,我希望将此项目转交给能够使代码保持活力的人。

简介

从 .NET 的 System.UriBuilder 中缺少的是修改查询字符串的好方法。这就是我寻找其他解决方案的原因,并最终启动了这个项目。

其他好的解决方案可能覆盖了您的需求,但我找不到一个能完全满足我的要求的解决方案。

  1. 执行所有 UriBuilder 操作
  2. 设置支持多个值的查询字符串
  3. 尽可能简单

这个项目是在从 URI.js 获得很大启发的背景下构建的,它是一个在 JavaScript 中修改 URI 的非常好的库。

文档

从 NuGet 安装

using UriBuilderExtended; 添加到您的源文件中,您将能在您的 UriBuilder 对象上使用以下方法

bool HasQuery(string key) 检查是否存在具有给定键的查询

bool HasQuery(string key, params string[] values) 检查是否存在具有给定键和值的查询

UriBuilder RemoveQuery(string key) 移除任何具有给定键的查询

UriBuilder SetQuery(string key, params string[] values) 为给定的键设置查询参数

UriBuilder AddQuery(string key, params string[] values) 为给定的键添加查询参数

List GetQueryValues(string key) 为给定键获取所有值

示例

    UriBuilder builder = new UriBuilder("http://www.mysite.net/");
    // URL is now http://www.mysite.net/
    
    // URL string  is obtained from builder.Uri.ToString(), not builder.ToString()
    // as it sometimes renders differently to what you'd expect

    builder.AddQuery("myKey", "myValue1");
    // URL is now http://www.mysite.net/?myKey=myValue1

    builder.AddQuery("myOtherKey", "myOtherValue1");
    // URL is now http://www.mysite.net/?myKey=myValue1&myOtherKey=myOtherValue1

    builder.AddQuery("myKey", "myValue2", "myValue3");
    // URL is now http://www.mysite.net/?myKey=myValue1&myKey=myValue2&myKey=myValue3&myOtherKey=myOtherValue1

    builder.SetQuery("myKey", "newValue1", "newValue2");
    // URL is now http://www.mysite.net/?myOtherKey=myOtherValue1&myKey=newValue1&myKey=newValue2

    builder.HasQuery("myKey");
    builder.HasQuery("myOtherKey");
    // true

    builder.HasQuery("myKey", "myValue1");
    // false

    builder.HasQuery("myKey", "newValue1");
    // true

    builder.HasQuery("notMymyKey");
    // false

    builder.GetQueryValues("myKey");
    // An ICollection containing values "newValue1" and "newValue2"
产品 兼容的和额外的计算目标框架版本。
.NET 框架 net45 兼容。 net451 已计算。 net452 已计算。 net46 已计算。 net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
兼容目标框架
包括目标框架(在包中)
了解更多关于 目标框架.NET Standard 的信息。

此包没有任何依赖项。

NuGet 包

此包没有被任何 NuGet 包使用。

GitHub 仓库

此包没有被任何流行的 GitHub 仓库使用。

版本 下载 最后更新
1.2.1 41,726 6/1/2016
1.2.0 1,244 6/1/2016
1.1.0 1,216 6/1/2016

1.2.1
     添加 GetQueryKeys 方法。
     
     1.2.0
     添加 GetQueryValues 方法。
     
     1.1.0
     首次稳定版发布。更改版本方案。