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)
- Наследование
- Атрибуты
- Реализации
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
Комментарии
Используйте класс WwwFormUrlDecoder для синтаксического анализа строки запроса на пары "имя-значение" на основе количества и размещения символов "&" и "=". Каждая пара "имя-значение" представлена объектом IWwFormUrlDecoderEntry , который имеет свойства Name и Value (обе строки).
Используйте GetFirstValueByName , чтобы найти конкретный параметр именованной строки запроса. Этот метод можно использовать во всех языках. Обычно вы используете GetFirstValueByName , а не GetAt , так как порядок элементов в строке запроса обычно не важен, тогда как имя параметра является важным идентификатором частей запроса. Или, если вы не знаете, какие имена существуют в строке запроса, можно выполнить перечисление по всей коллекции WwwFormUrlDecoder.
Свойство Uri.QueryParsed возвращает полный объект WwwFormUrlDecoder на основе экземпляра Uri . Таким образом, если вы используете расширения компонентов Visual C++ (C++/CX) или код JavaScript и у вас уже есть экземпляр Uri , вам не потребуется создавать новый объект WwwFormUrlDecoder, экземпляр Uri уже имеет его. Вы можете создать WwwFormUrlDecoder, если у вас есть строка, представляющая URL-адрес, или его компонент строки запроса из других источников, например из API Windows.Web.Http .
Примечание
Эта коллекция является вектором, а не картой, если исходный порядок имеет какое-либо значение для реализации, а также потому, что одно и то же имя может отображаться в строке запроса дважды, тогда как для карт не является допустимым наличие повторяющихся ключей.
Списки элементов коллекции
Для использования .NET в WwwFormUrlDecoder есть проецируемые API универсального IReadOnlyList с ограничением IWwFormUrlDecoderEntry . API, доступные для каждого языка, указываются в списках членов.
Для JavaScript WwwFormUrlDecoder содержит элементы, отображаемые в списках элементов. Кроме того, WwwFormUrlDecoder поддерживает свойство length , элементы Array.prototype и использование индекса для доступа к элементам.
Использование .NET
Код .NET не может использовать класс Windows.Foundation.Uri (вместо него используется System.Uri ). Но код .NET может и должен использовать WwwFormUrlDecoder. Использование WwwFormUrlDecoder проще и менее подвержено ошибкам, чем разделение строк на символы "&" и "=". Это усложняется из-за кодирования. Чтобы использовать WwwFormUrlDecoder, вызовите конструктор WwwFormUrlDecoder , передав значение Query из system.Uri. При этом инициализируется новый объект WwwFormUrlDecoder. Затем используйте GetFirstValueByName , чтобы найти конкретный именованный параметр строки запроса. Или, если вы не знаете, что будет в строке запроса, выполните перечисление по коллекции, чтобы определить доступные параметры строки запроса.
Используйте интерфейс IWwFormUrlDecoderEntry для типа элементов в коллекции (именно так элементы будут вводиться с помощью IndexOf). Не используйте класс WwwFormUrlDecoderEntry , он недоступен для использования .NET.
WwwFormUrlDecoder также имеет проецируемые API универсального IReadOnlyList с ограничением IWwFormUrlDecoderEntry , но эти API часто не используются.
Примечание
System.Web.HttpUtility.ParseQueryString
недоступно для .NET для приложения среда выполнения Windows. Рекомендуемой заменой для него является WwwFormUrlDecoder.
Перечисление коллекции на C# или Microsoft Visual Basic
WwwFormUrlDecoder перечисляется, поэтому для перечисления элементов в коллекции можно использовать синтаксис для конкретного языка, например foreach в C#. Компилятор выполняет приведение типов автоматически, и вам не нужно явно приводить к IEnumerable<IWwwFormUrlDecoderEntry>
. Если необходимо выполнить приведение явным образом, например, если вы хотите вызвать GetEnumerator, приведите к IEnumerable<T> с ограничением IWwFormUrlDecoderEntry .
Конструкторы
WwwFormUrlDecoder(String) |
Создает и инициализирует новый экземпляр класса WwwFormUrlDecoder . |
Свойства
Size |
Возвращает количество пар "имя-значение" в текущей строке запроса URL-адреса. |
Методы
First() |
Возвращает итератор, представляющий первую пару "имя-значение" в текущей строке запроса URL-адреса. |
GetAt(UInt32) |
Возвращает пару "имя-значение" по указанному индексу в текущей строке запроса URL-адреса. |
GetFirstValueByName(String) |
Возвращает первую пару "имя-значение", которая имеет указанное имя, полученное из строки запроса URI. |
GetMany(UInt32, IWwwFormUrlDecoderEntry[]) |
Возвращает пары "имя-значение", начиная с указанного индекса в текущей строке запроса URL-адреса. |
IndexOf(IWwwFormUrlDecoderEntry, UInt32) |
Возвращает значение, указывающее, находится ли указанная IWwFormUrlDecoderEntry по указанному индексу в строке запроса текущего URL-адреса. |