WwwFormUrlDecoder 类

定义

分析 URL 查询字符串,并将结果公开为只读矢量 (列表) 查询字符串中的名称/值对。

public ref class WwwFormUrlDecoder sealed : IIterable<IWwwFormUrlDecoderEntry ^>, IVectorView<IWwwFormUrlDecoderEntry ^>
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.IWwwFormUrlDecoderRuntimeClassFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class WwwFormUrlDecoder final : IIterable<IWwwFormUrlDecoderEntry>, IVectorView<IWwwFormUrlDecoderEntry>
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.IWwwFormUrlDecoderRuntimeClassFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class WwwFormUrlDecoder final : IIterable<IWwwFormUrlDecoderEntry>, IVectorView<IWwwFormUrlDecoderEntry>
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.IWwwFormUrlDecoderRuntimeClassFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class WwwFormUrlDecoder : IEnumerable<IWwwFormUrlDecoderEntry>, IReadOnlyList<IWwwFormUrlDecoderEntry>
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.IWwwFormUrlDecoderRuntimeClassFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class WwwFormUrlDecoder : IEnumerable<IWwwFormUrlDecoderEntry>, IReadOnlyList<IWwwFormUrlDecoderEntry>
function WwwFormUrlDecoder(query)
Public NotInheritable Class WwwFormUrlDecoder
Implements IEnumerable(Of IWwwFormUrlDecoderEntry), IReadOnlyList(Of IWwwFormUrlDecoderEntry)
继承
Object Platform::Object IInspectable WwwFormUrlDecoder
属性
实现

Windows 要求

设备系列
Windows 10 (在 10.0.10240.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)

注解

使用 WwwFormUrlDecoder 类根据“&”和“=”符号的数量和位置,将查询字符串分析为名称/值对。 每个名称/值对由 IWwwFormUrlDecoderEntry 对象表示,该对象具有 Name 属性和 Value 属性 (两个字符串) 。

使用 GetFirstValueByName 查找特定的命名查询字符串参数。 所有语言都可以使用此方法。 通常使用 GetFirstValueByName 而不是 GetAt ,因为查询字符串中项的顺序通常并不重要,而参数名称是查询各部分的重要标识符。 或者,如果不确定查询字符串中存在哪些名称,则可以枚举整个 WwwFormUrlDecoder 集合。

Uri.QueryParsed 属性基于 Uri 实例返回完整的 WwwFormUrlDecoder。 因此,如果使用 Visual C++ 组件扩展 (C++/CX) 或 JavaScript 代码,并且已有 Uri 实例,则无需构造新的 WwwFormUrlDecoder 对象, Uri 实例已有一个。 如果有一个字符串表示来自其他源(例如 来自 Windows.Web.Http API)的 URL 或其查询字符串组件,则可以构造 WwwFormUrlDecoder。

注意

如果原始顺序对实现有任何意义,则此集合是向量而不是映射,还因为同一名称在查询字符串中出现两次是合法的,而映射具有重复键是不合法的。

集合成员列表

对于 .NET 用法,WwwFormUrlDecoder 具有具有 IWwwFormUrlDecoderEntry 约束的泛型 IReadOnlyList 的投影 API。 可用于每种语言的 API 在成员列表中指示。

对于 JavaScript,WwwFormUrlDecoder 具有成员列表中显示的成员。 此外,WwwFormUrlDecoder 支持 length 属性、 Array.prototype 的成员以及使用索引访问项。

.NET 使用情况

.NET 代码不能使用 Windows.Foundation.Uri 类, (改用 System.Uri) 。 但 .NET 代码可以而且应该使用 WwwFormUrlDecoder。 与对“&”和“=”字符进行字符串拆分相比,使用 WwwFormUrlDecoder 更简单且更不容易出错。 由于编码,这变得复杂。 若要使用 WwwFormUrlDecoder,请调用 WwwFormUrlDecoder 构造函数,从 System.Uri 传入 Query 值。 这将初始化一个新的 WwwFormUrlDecoder 对象。 然后使用 GetFirstValueByName 查找特定的命名查询字符串参数。 或者,如果不知道查询字符串中的内容,请枚举集合以确定可用的查询字符串参数。

对于集合中项的类型,请使用 IWwwFormUrlDecoderEntry 接口 (IndexOf) 键入项的方式。 请勿使用 WwwFormUrlDecoderEntry 类,它不适用于 .NET 用法。

WwwFormUrlDecoder 还具有具有 IWwwFormUrlDecoderEntry 约束的泛型 IReadOnlyList 的投影 API,但这些 API 并不常用。

注意

System.Web.HttpUtility.ParseQueryString不适用于 Windows 运行时 应用的 .NET。 建议替换 WwwFormUrlDecoder。

枚举 C# 或 Microsoft Visual Basic 中的集合

WwwFormUrlDecoder 是可枚举的,因此可以使用特定于语言的语法(如 C# 中的 foreach )枚举集合中的项。 编译器为你执行类型强制转换,你无需显式转换为 IEnumerable<IWwwFormUrlDecoderEntry> 。 如果需要显式强制转换(例如,如果要调用 GetEnumerator),请使用 IWwwFormUrlDecoderEntry 约束强制转换为 IEnumerable<T>

构造函数

WwwFormUrlDecoder(String)

创建并初始化 WwwFormUrlDecoder 类的新实例。

属性

Size

获取当前 URL 查询字符串中名称/值对的数目。

方法

First()

获取一个迭代器,该迭代器表示当前 URL 查询字符串中的第一个名称/值对。

GetAt(UInt32)

获取当前 URL 查询字符串中指定索引处的名称/值对。

GetFirstValueByName(String)

获取具有指定名称的第一个名称/值对,从构造统一资源标识符 (URI) 查询字符串获取。

GetMany(UInt32, IWwwFormUrlDecoderEntry[])

获取从当前 URL 查询字符串中的指定索引开始的名称/值对。

IndexOf(IWwwFormUrlDecoderEntry, UInt32)

获取一个值,该值指示指定的 IWwwFormUrlDecoderEntry 是否位于当前 URL 查询字符串中的指定索引处。

适用于

另请参阅