PropertySet Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет набор свойств, который представляет собой набор объектов PropertyValue со строковыми ключами.
public ref class PropertySet sealed : IIterable<IKeyValuePair<Platform::String ^, Platform::Object ^> ^>, IMap<Platform::String ^, Platform::Object ^>, IObservableMap<Platform::String ^, Platform::Object ^>, IPropertySet
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.FoundationContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PropertySet final : IIterable<IKeyValuePair<winrt::hstring, IInspectable const&>>, IMap<winrt::hstring, IInspectable const&>, IObservableMap<winrt::hstring, IInspectable const&>, IPropertySet
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.FoundationContract")]
class PropertySet final : IIterable<IKeyValuePair<winrt::hstring, IInspectable const&>>, IMap<winrt::hstring, IInspectable const&>, IObservableMap<winrt::hstring, IInspectable const&>, IPropertySet
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.FoundationContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class PropertySet : IDictionary<string,object>, IEnumerable<KeyValuePair<string,object>>, IObservableMap<string,object>, IPropertySet
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.FoundationContract")]
public sealed class PropertySet : IDictionary<string,object>, IEnumerable<KeyValuePair<string,object>>, IObservableMap<string,object>, IPropertySet
function PropertySet()
Public NotInheritable Class PropertySet
Implements IDictionary(Of String, Object), IEnumerable(Of KeyValuePair(Of String, Object)), IObservableMap(Of String, Object), IPropertySet
- Наследование
- Атрибуты
- Реализации
-
IMap<K,V> IDictionary<K,V> IMap<String,Object> IDictionary<String,Object> IMap<Platform::String,Platform::Object> IMap<winrt::hstring,IInspectable> IIterable<IKeyValuePair<K,V>> IEnumerable<KeyValuePair<K,V>> IIterable<IKeyValuePair<String,Object>> IEnumerable<KeyValuePair<String,Object>> IIterable<IKeyValuePair<Platform::String,Platform::Object>> IIterable<IKeyValuePair<winrt::hstring,IInspectable>> IObservableMap<String,Object> IObservableMap<Platform::String,Platform::Object> IObservableMap<winrt::hstring,IInspectable> IPropertySet
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.FoundationContract (появилось в v1.0)
|
Комментарии
Этот класс реализует сопоставление (интерфейс IMap<K,V> ) с ключами типа String и значениями типа PropertyValue. Тип PropertySet позволяет различным API среда выполнения Windows возвращать коллекцию смешанных значений, которые по-прежнему можно итерировать или проверить с помощью общих API коллекции PropertySet, которые соответствуют методам коллекции IMap<K, V>, IDictionary<TKey, TValue> или JavaScript и методов перечисления, в зависимости от того, какой язык использует приложение.
PropertyValue — это класс, поддерживающий большое количество статических методов Create*, которые создают намеренно нетипизированное значение из входных данных, которые обычно являются типом значения или примитивом (логические значения, числа и т. д.) или массивом этих значений. После вызова одного из статических методов PropertyValue его возвращаемое значение можно рассматривать как экземпляр PropertyValue (однако методы Create* технически возвращают Объект , если посмотреть на сигнатуры).
Однако обычно свойство PropertySet не используется способом, требующим самостоятельного заполнения значений PropertyValue в наборе. Вместо этого вы обычно получаете заполненное свойство PropertySet в качестве возвращаемого значения из API среда выполнения Windows, предоставляющего коллекцию, в которой типы значений в нем могут быть смешанными, но по-прежнему связаны друг с другом по источнику или сценарию. Например, значения LocalSettings и RoamingSettings , которые вы получаете при извлечении данных приложения, относятся к типу ApplicationDataContainer, и каждое из них содержит PropertySet в качестве значения свойства Values . При взаимодействии с данными приложения, в котором хранятся параметры, вы обычно получаете коллекцию из ApplicationDataContainer.Values. После этого вы сможете:
- Итерация по набору с помощью соответствующего синтаксиса итерации
- используйте HasKey/ContainsKey , чтобы проверить существование PropertyValue в наборе
- используйте поиск или индексатор элементов , чтобы получить элемент, как только вы знаете, что он существует
Для таких сценариев, как работа с данными приложения, если у вас есть PropertySet, он имеется по ссылке, поэтому если вы добавляете элементы в PropertySet с помощью команды Добавить/вставку , эти элементы будут добавлены в данные приложения, а при удалении элементов они удаляются из данных приложения. Все такие изменения затем передаются через механизмы данных приложения, если они вносятся в RoamingSettings.
Существуют и другие API-интерфейсы среда выполнения Windows, которые используют значение PropertySet в качестве прямого значения, а не упакованы в другой класс, например ApplicationDataContainer. Например, CoreApplication.Properties возвращает свойство PropertySet.
Различные свойства, сообщающие сведения с носителя и устройств, используют PropertySet, например PlayToReceiver.Properties. Однако существуют и другие наборы свойств мультимедиа и устройств, которые не используют PropertySet, а вместо этого используют MediaPropertySet, так как идентификатор для этих свойств лучше представить, если ключ имеет идентификатор GUID , а не строку.
Во многих случаях, когда API среда выполнения Windows использует PropertySet в качестве значения, он фактически отображается как IPropertySet в сигнатурах. PropertySet можно считать практической реализацией IPropertySet , готовой для использования в коде приложения. Код JavaScript может обрабатывать любое значение IPropertySet так, как если бы он реализовал прототипы PropertySet.
Списки элементов коллекции
Для JavaScript PropertySet поддерживает использование индекса для доступа к элементам.
Конструкторы
PropertySet() |
Создает и инициализирует новый экземпляр набора свойств. |
Свойства
Size |
Возвращает количество элементов, содержащихся в наборе свойств. |
Методы
Clear() |
Удаляет все элементы из набора свойств. |
First() |
Возвращает итератор для перечисления элементов в наборе свойств. |
GetView() |
Возвращает неизменяемое представление набора свойств. |
HasKey(String) |
Указывает, содержит ли набор свойств элемент с указанным ключом. |
Insert(String, Object) |
Добавляет элемент в набор свойств. |
Lookup(String) |
Извлекает значение для указанного ключа. |
Remove(String) |
Удаляет элемент из набора свойств. |
События
MapChanged |
Происходит при изменении наблюдаемой карты. |