Quand on regarde l’aide MSDN pour une classe de l’API Windows 8, par exemple PasswordVault, il est clairement indiqué que cette classe est utilisable à partir d’une application Windows Store ou d’une application Desktop (Console, WinForms ou WPF) :
Dans le cas d’une application Windows Store, vous n’avez aucune référence à ajouter. Il suffit d’ajouter le using indiqué. Pour une application Desktop, c’est une autre paire de manche :
Voici la procédure à suivre pour utiliser l’API depuis une application Desktop :
Modifier le fichier csproj du projet et y ajouter “<TargetPlatformVersion>8.0</TargetPlatformVersion>”
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{BEA97844-0370-40C1-A435-F95DC0DC0677}</ProjectGuid>
<OutputType>Exe</OutputType>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<TargetPlatformVersion>8.0</TargetPlatformVersion>
Ajouter la référence à “Windows”
Notez au passage le numéro de version :).
Ajouter la référence à « System. Runtime »
(“C :\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System. Runtime. dll”)
Utiliser l’API
Vous pouvez désormais accéder à une classe de l’API WinRT depuis votre application Desktop.
var vault = new Windows.Security.Credentials.PasswordVault();
var credentials = vault.RetrieveAll();
foreach (PasswordCredential credential in credentials)
{
Console.WriteLine("{0} {1}", credential.Resource, credential.UserName);
}
Et voilà.