можно добавить настраиваемое свойство в StorageItemContentProperties StorageFile в приложениях метро С#/XAML

58
5

Я знаю, что могу получить предопределенные свойства файлов с помощью метода RetrievePropertiesAsync(). Но теперь я хочу добавить еще одно собственное свойство, такое как описание, возможно ли это? Я пробовал этот код, но получаю исключение

protected async override void OnNavigatedTo(NavigationEventArgs e)
{
StorageFile file = await KnownFolders.MusicLibrary.GetFileAsync("video.mp4");
List<string> propertiesName = new List<string>();
propertiesName.Add("CustomProperty");
string a = "Come and knock on our door. We've been waiting for you. Where the kisses are hers and hers and his, three company, too! Come and dance on our floor. Take a step that is new. We've a lovable space that needs your face, three company, too! You'll see that life is a ball again and laughter is callin' for you. Down at our rendezvous, three company, too! The year is 1987 and NASA launches the last of America deep space probes. In a freak mishap, Ranger 3 and its pilot Captain William 'Buck' Rogers are blown out of their trajectory into an orbit which freezes his life support system and returns Buck Rogers to Earth five hundred years later.";
IDictionary<string, object> extraProperties = await file.Properties.RetrievePropertiesAsync(propertiesName);
extraProperties.Add((new KeyValuePair<string, object>("CustomProperty", a)));
await file.Properties.SavePropertiesAsync(extraProperties);
}

An exception of type 'System.ArgumentException' occurred in App2.exe but was not handled in user code
WinRT information: The specified property name (CustomProperty) is invalid. The property may not be registered on the system.
Additional information: The parameter is incorrect.

PS: Я хочу что-то вроде этого

спросил(а) 2020-04-04T02:01:25+03:00 6 месяцев, 3 недели назад
1
Решение
57

Ошибки, по-видимому, указывают на то, что свойство необходимо определить в системе свойств, которую нужно получить. Быстрый поиск MSDN показывает, что это можно сделать с помощью функции PSRegisterPropertySchema, но она доступна только для настольных приложений. В этом разделе описывается регистрация пользовательских свойств более подробно. Поскольку в Windows 8 уже имеется множество встроенных свойств и WinRT, поскольку основное внимание уделяется его основам, маловероятно, что это было бы возможно из приложения Windows Store. Это означает, что вы можете зарегистрировать свойство с помощью настольного приложения, но ваше приложение магазина не может полагаться на его существование, если оно должно пройти сертификацию. В документации для StorageItemContentProperties упоминается использование QueryOptions для запроса свойств, определенных другими приложениями, что вы можете попробовать использовать, если вы хотите искать свойства, определенные другими приложениями.

Примечание. Свойства, которые получают или устанавливаются с помощью обработчика свойств, который определен другим приложением (например, Microsoft Word), могут быть недоступны. Вместо этого вы можете попытаться получить эти свойства, используя файл-запрос, который поддерживается системным индексом. Для получения дополнительной информации см. QueryOptions.

ответил(а) 2020-04-04T02:15:44.813259+03:00 6 месяцев, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема