CurrentAppSimulator Class

Définit les méthodes et les propriétés utilisées pour instancier un objet que vous pouvez utiliser pour obtenir les informations de licence simulées pendant le test.

Remarque  Vous devez remplacer la classe CurrentAppSimulator par la classe CurrentApp avant d'envoyer l'application dans le magasin Windows. La certification échoue avec les applications qui utilisent CurrentAppSimulator.

Syntaxe


public static class CurrentAppSimulator

Attributs

[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]

Membres

CurrentAppSimulatorClasse possède ces types de membres :

Méthodes

The CurrentAppSimulator Classe a les méthodes suivantes. Avec C#, Visual Basic et C++, elle hérite également des méthodes de Object Classe.

MéthodeDescription
GetAppReceiptAsync Creates the async operation that the user can use to simulate requesting all receipts for this app and any in-app purchases.
GetProductReceiptAsync Creates the async operation that the user can use to simulate requesting the receipt for the productId specified.
GetUnfulfilledConsumablesAsync Returns a list of purchased consumables that have not been fulfilled.
LoadListingInformationAsync Loads the simulated app listing information asynchronously. Implements the IAsyncInfo interface.
ReloadSimulatorAsync Reloads the simulator using a StorageFile containing the WindowsStoreProxy.xml file.
ReportConsumableFulfillmentAsync Simulates notifying the Windows Store that the purchase of a consumable is fulfilled and that the user has the right to access the content.
RequestAppPurchaseAsync Creates the async operation that simulates a user request to buy a full license for the current app.
RequestProductPurchaseAsync(String) Creates the async operation that displays the UI that is used to simulate an in-app purchase of content or a feature from the Windows Store.
RequestProductPurchaseAsync(String, Boolean) Creates the async operation that displays the UI that is used to simulate an in-app purchase of content or a feature from the Windows Store.
RequestProductPurchaseAsync(String, String, ProductPurchaseDisplayProperties) Creates the async operation that displays the UI that is used to simulate an in-app purchase of content or a feature from the Windows Store.

 

Propriétés

Le CurrentAppSimulatorClasse a les propriétés suivantes.

PropriétéType d'accèsDescription

AppId

En lecture seuleGets a simulated app ID. Since CurrentAppSimulator is intended only for testing during app development, the returned CurrentAppSimulator.AppId will contain only 0's.

LicenseInformation

En lecture seuleGets the simulated license metadata for the current app as provided by the simulation.

LinkUri

En lecture seuleGets the simulated Uniform Resource Identifier (URI) that represents a Windows Store listing page for the current app.

 

Remarques

Tant que l'application n'a pas été répertoriée dans Windows Store, l'objet CurrentApp ne fonctionne pas dans l'application. Utilisez CurrentAppSimulator pour tester l'attribution d'une licence de votre application et les acquisitions d'applications lorsque vous développez votre application. Après avoir testé votre application et avant de l'envoyer à Windows Store, remplacez les instances de CurrentAppSimulator par CurrentApp. La certification échoue avec l'application qui utilise CurrentAppSimulator.

Remarque  Lorsque vous utilisez la simulation, l'état initial des licences de l'application est décrit dans WindowsStoreProxy.xml. La méthode CurrentAppSimulator qui change l'état de la licence, par exemple en achetant une licence ou en gérant l'acquisition d'applications, met uniquement à jour l'état de la licence de l'objet en mémoire. Le contenu de WindowsStoreProxy.xml n'est pas modifié. Lorsque l'application reprend, l'état de licence revient à ce qui est décrit dans WindowsStoreProxy.xml.

L'objet CurrentAppSimulator obtient ses données du fichier WindowsStoreProxy.xml dans le dossier %userprofile%\appdata\local\packages\<package-moniker>\localstate\microsoft\Windows Store\Apidata. Vous devez configurer ce fichier pour le scénario que vous souhaitez simuler dans les propriétés CurrentAppSimulator.

Le contenu de ce fichier est défini par le fichier SimulatedCurrentApp.xsd inclus comme exemple dans la suite de cette rubrique, et ils reflètent l'organisation des objets et propriétés de l'espace de noms Windows.ApplicationModel.Store.

Les éléments de ce fichier sont inclus dans le nœud racine CurrentApp et incluent :

ListingInformation

Représente les données qui figurent normalement dans la liste de l'application et inclut les éléments suivants :

App

Représente les données relatives à l'application et contient les éléments suivants :

AppId

GUID qui identifie l'application dans le magasin. Cela peut être un GUID pour le test.

LinkUri

URI de la page de liste du magasin. Cela peut être tout URI valide pour le test.

AgeRating

Entier qui représente l'évaluation d'âge minimal de l'application. C'est la même valeur que vous spécifiez dans le tableau de bord lorsque vous envoyez l'application. Les valeurs utilisées par le Windows Store sont : 3, 7, 12 et 16.

CurrentMarket

Il s'agit du pays ou de la région du client.

Pour chaque pays/région où l'application est répertoriée, il doit exister un élément MarketData.

MarketData

Informations sur l'application pour ce pays ou cette région.

Requiert l'attribut xml:lang, qui spécifie le pays ou la région à laquelle ces informations s'appliquent.

Name

Nom de l'application dans ce pays/cette région.

Description

Description de l'application pour ce pays/cette région.

Price

Tarif de l'application dans ce pays/cette région.

CurrencySymbol

Symbole de devise utilisé dans ce pays/cette région.

Product

Décrit un produit ou une fonctionnalité dans cette application qui est activée lorsque le client effectue une acquisition d'applications.

Requiert l'attribut ProductId, qui contient la chaîne utilisée par l'application pour identifier le produit ou la fonctionnalité.

Requiert l'attribut LicenseDuration, qui contient la durée de validité en jours de la licence après l'achat. La date d'expiration de la nouvelle licence créée par un achat du produit est la date d'achat et la durée de la licence.

MarketData

Informations sur le produit ou la fonctionnalité pour ce pays ou cette région.

Requiert l'attribut xml:lang, qui spécifie le pays ou la région à laquelle ces informations s'appliquent.

Name

Nom du produit ou de la fonctionnalité dans ce pays/cette région.

Price

Tarif du produit ou de la fonctionnalité dans ce pays/cette région.

CurrencySymbol

Symbole de devise utilisé dans ce pays/cette région.

CurrencyCode

Code de devise utilisé dans ce pays/cette région.

LicenseInformation

Représente les données qui décrivent les licences disponibles pour cette application et incluent les éléments suivants :

App

Décrit la licence de l'application :

IsActive

Décrit l'état de licence actuel de cette application.

true indique que la licence est valide. Normalement, cette valeur est true, que l'application possède ou non un mode test.

false indique une licence valide. Définissez cette valeur sur false pour tester comment votre application se comporte lorsqu'elle a une licence non valide.

IsTrial

Décrit l'état actuel de la version d'évaluation de cette application.

true indique que l'application est utilisée pendant la période de test.

false indique que l'application ne correspond pas à une version d'évaluation, ou que l'application a été achetée ou que la période d'évaluation a expiré.

ExpirationDate

Date à laquelle la période d'évaluation de cette application expire. La date sous sa forme abrégée doit se présenter comme suit : aaaa-mm-jjThh:mm:ss.ssZ. Par exemple, 05:00 le 19 janvier 2012 est spécifié sous la forme 2012-01-19T05:00:00.00Z.

Si cet élément est obligatoire lorsque IsTrial est true. Sinon, il n'est pas requis.

DefaultResponse

Décrit un code d'erreur par défaut retourné par une méthode donnée. L'attribut MethodName vous permet de spécifier une des méthodes suivantes :

RequestAppPurchaseAsync_GetResult
RequestProductPurchaseAsync_GetResult
LoadListingInformationAsync_GetResult
L'attribut HResult vous permet de spécifier le code d'erreur. SimulatedCurrentApp.xsd contient la liste des codes d'erreur courants que vous pouvez utiliser.

Product

Décrit l'état de licence d'un produit ou d'une fonctionnalité dans l'application :

IsActive

Décrit l'état de licence actuel de ce produit ou de cette fonctionnalité.

true indique que le produit ou la fonctionnalité peut être utilisé(e).

false indique que le produit ou la fonctionnalité ne peut pas être utilisé(e) ou n'a pas été acheté(e).

ExpirationDate

Date à laquelle le produit ou la fonctionnalité expire. La date sous sa forme abrégée doit se présenter comme suit : aaaa-mm-jjThh:mm:ss.ssZ. Par exemple, 05:00 le 19 janvier 2012 est spécifié sous la forme 2012-01-19T05:00:00.00Z.

Si cet élément est présent, le produit ou la fonction comporte une date d'expiration.

Si cet élément n'est pas présent, le produit ou la fonctionnalité n'expire pas.

Simulation

Décrit comment les divers appels de méthode fonctionnent. Lorsque l'attribut SimulationMode a la valeur Automatic, les méthodes retournent automatiquement les codes d'erreur HRESULT spécifiés. Cela peut être utilisé en exécutant les cas de test automatisés.

Exemples

Cet exemple est un fichier WindowsStoreProxy.xml qui décrit une application avec un mode de test qui expire à 5h00 (Z) le 19 janvier 2012.


<?xml version="1.0" encoding="UTF-16"?>
<CurrentApp>
  <ListingInformation>
    <App>
      <AppId>2B14D306-D8F8-4066-A45B-0FB3464C67F2</AppId>
      <LinkUri>http://apps.windows.microsoft.com/app/2B14D306-D8F8-4066-A45B-0FB3464C67F2</LinkUri>
      <CurrentMarket>en-US</CurrentMarket>
      <AgeRating>3</AgeRating>
      <MarketData xml:lang="en-us">
        <Name>Trial management full license</Name>
        <Description>Sample app for demonstrating trial license management</Description>
        <Price>4.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
      </MarketData>
    </App>
  </ListingInformation>
  <LicenseInformation>
    <App>
      <IsActive>true</IsActive>
      <IsTrial>true</IsTrial>
      <ExpirationDate>2012-01-19T05:00:00.00Z</ExpirationDate>
    </App>
  </LicenseInformation>
  <Simulation SimulationMode="Automatic">
    <DefaultResponse MethodName="LoadListingInformationAsync_GetResult" HResult="E_FAIL"/>
  </Simulation>
</CurrentApp>

L'exemple suivant est un fichier WindowsStoreProxy.xml qui décrit une application qui a été achetée et possède une fonctionnalité qui expire à 5h00 (Z) le 19 janvier 2012.


<?xml version="1.0" encoding="utf-16" ?>
<CurrentApp>
  <ListingInformation>
    <App>
      <AppId>988b90e4-5d4d-4dea-99d0-e423e414ffbc</AppId>
      <LinkUri>http://apps.windows.microsoft.com/app/988b90e4-5d4d-4dea-99d0-e423e414ffbc</LinkUri>
      <CurrentMarket>en-us</CurrentMarket>
      <AgeRating>3</AgeRating>
      <MarketData xml:lang="en-us">
        <Name>Expiring in-app feature</Name>
        <Description>App description text goes here.</Description>
        <Price>5.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
      </MarketData>
    </App>
    <Product ProductId="feature1" LicenseDuration="10">
      <MarketData xml:lang="en-us">
        <Name>Feature 1</Name>
        <Price>1.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
      </MarketData>
    </Product>
  </ListingInformation>
  <LicenseInformation>
    <App>
      <IsActive>true</IsActive>
      <IsTrial>false</IsTrial>
    </App>
    <Product ProductId="feature1">
      <IsActive>true</IsActive>
      <ExpirationDate>2012-01-19T00:00:00.00Z</ExpirationDate>
    </Product>
  </LicenseInformation>
</CurrentApp>


SimulatedCurrentApp.xsd

L'exemple suivant est le fichier XSD qui définit la structure des fichiers temporaires utilisés pour tester votre application avec CurrentAppSimulator.


<?xml version="1.0" encoding="utf-8"?>  
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">  
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" />  
  <xs:element name="CurrentApp" type="CurrentAppDefinition"></xs:element>  
  <xs:complexType name="CurrentAppDefinition">  
    <xs:sequence>  
      <xs:element name="ListingInformation" type="ListingDefinition" minOccurs="1" maxOccurs="1"/>  
      <xs:element name="LicenseInformation" type="LicenseDefinition" minOccurs="1" maxOccurs="1"/>  
      <xs:element name="Simulation" type="SimulationDefinition" minOccurs="0" maxOccurs="1"/>  
    </xs:sequence>  
  </xs:complexType>  
  <xs:simpleType name="ResponseCodes">  
    <xs:restriction base="xs:string">  
      <xs:enumeration value="S_OK">  
        <xs:annotation>  
          <xs:documentation>0x00000000</xs:documentation>  
        </xs:annotation>  
      </xs:enumeration>  
      <xs:enumeration value="E_INVALIDARG">  
        <xs:annotation>  
          <xs:documentation>0x80070057</xs:documentation>  
        </xs:annotation>  
      </xs:enumeration>  
      <xs:enumeration value="E_CANCELLED">  
        <xs:annotation>  
          <xs:documentation>0x800704C7</xs:documentation>  
        </xs:annotation>  
      </xs:enumeration>  
      <xs:enumeration value="E_FAIL">  
        <xs:annotation>  
          <xs:documentation>0x80004005</xs:documentation>  
        </xs:annotation>  
      </xs:enumeration>  
      <xs:enumeration value="E_OUTOFMEMORY">  
        <xs:annotation>  
          <xs:documentation>0x8007000E</xs:documentation>  
        </xs:annotation>  
      </xs:enumeration>  
      <xs:enumeration value="ERROR_ALREADY_EXISTS">  
        <xs:annotation>  
          <xs:documentation>0x800700B7</xs:documentation>  
        </xs:annotation>  
      </xs:enumeration>  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name="StoreMethodName">  
    <xs:restriction base="xs:string">  
      <xs:enumeration value="RequestAppPurchaseAsync_GetResult" id="RPPA" />  
      <xs:enumeration value="RequestProductPurchaseAsync_GetResult" id="RFPA" />  
      <xs:enumeration value="LoadListingInformationAsync_GetResult" id="LLIA" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name="SimulationMode">  
    <xs:restriction base="xs:string">  
      <xs:enumeration value="Interactive" />  
      <xs:enumeration value="Automatic" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:complexType name="ListingDefinition">  
    <xs:sequence>  
      <xs:element name="App" type="AppListingDefinition" />  
      <xs:element name="Product" type="ProductListingDefinition" minOccurs="0" maxOccurs="unbounded" />  
    </xs:sequence>  
  </xs:complexType>  
  <xs:complexType name="AppListingDefinition">  
    <xs:sequence>  
      <xs:element name="AppId" type="xs:string" minOccurs="1" maxOccurs="1" />  
      <xs:element name="LinkUri" type="xs:anyURI" minOccurs="1" maxOccurs="1" />  
      <xs:element name="CurrentMarket" type="xs:language" minOccurs="1" maxOccurs="1" />  
      <xs:element name="AgeRating" type="xs:unsignedInt" minOccurs="1" maxOccurs="1" />  
      <xs:element name="MarketData" type="MarketSpecificAppData" minOccurs="1" maxOccurs="unbounded" />  
    </xs:sequence>  
  </xs:complexType>  
  <xs:complexType name="MarketSpecificAppData">  
    <xs:sequence>  
      <xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1" />  
      <xs:element name="Description" type="xs:string" minOccurs="1" maxOccurs="1" />  
      <xs:element name="Price" type="xs:float" minOccurs="1" maxOccurs="1" />  
      <xs:element name="CurrencySymbol" type="xs:string" minOccurs="1" maxOccurs="1" />  
      <xs:element name="CurrencyCode" type="xs:string" minOccurs="0" maxOccurs="1" />  
    </xs:sequence>  
    <xs:attribute ref="xml:lang" use="required" />  
  </xs:complexType>  
  <xs:complexType name="MarketSpecificProductData">  
    <xs:sequence>  
      <xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1" />  
      <xs:element name="Price" type="xs:float" minOccurs="1" maxOccurs="1" />  
      <xs:element name="CurrencySymbol" type="xs:string" minOccurs="1" maxOccurs="1" />  
      <xs:element name="CurrencyCode" type="xs:string" minOccurs="0" maxOccurs="1" />  
    </xs:sequence>  
    <xs:attribute ref="xml:lang" use="required" />  
  </xs:complexType>  
  <xs:complexType name="ProductListingDefinition">  
    <xs:sequence>  
      <xs:element name="MarketData" type="MarketSpecificProductData" minOccurs="1" maxOccurs="unbounded" />  
    </xs:sequence>  
    <xs:attribute name="ProductId" use="required">  
      <xs:simpleType>  
        <xs:restriction base="xs:string">  
          <xs:maxLength value="100"/>  
          <xs:pattern value="[^,]*"/>  
        </xs:restriction>  
      </xs:simpleType>  
    </xs:attribute>  
    <xs:attribute name="LicenseDuration" type="xs:integer" use="optional" />  
  </xs:complexType>  
  <xs:complexType name="LicenseDefinition">  
    <xs:sequence>  
      <xs:element name="App" type="AppLicenseDefinition" />  
      <xs:element name="Product" type="ProductLicenseDefinition" minOccurs="0" maxOccurs="unbounded" />  
    </xs:sequence>  
  </xs:complexType>  
  <xs:complexType name="AppLicenseDefinition">  
    <xs:sequence>  
      <xs:element name="IsActive" type="xs:boolean" minOccurs="1" maxOccurs="1" />  
      <xs:element name="IsTrial" type="xs:boolean" minOccurs="1" maxOccurs="1" />  
      <xs:element name="ExpirationDate" type="xs:dateTime" minOccurs="0" maxOccurs="1" />  
    </xs:sequence>  
  </xs:complexType>  
  <xs:complexType name="ProductLicenseDefinition">  
    <xs:sequence>  
      <xs:element name="IsActive" type="xs:boolean" minOccurs="1" maxOccurs="1" />  
      <xs:element name="ExpirationDate" type="xs:dateTime" minOccurs="0" maxOccurs="1" />  
    </xs:sequence>  
    <xs:attribute name="ProductId" type="xs:string" use="required" />  
  </xs:complexType>  
  <xs:complexType name="SimulationDefinition" >  
    <xs:sequence>  
      <xs:element name="DefaultResponse" type="DefaultResponseDefinition" minOccurs="0" maxOccurs="unbounded" />  
    </xs:sequence>  
    <xs:attribute name="SimulationMode" type="SimulationMode" use="optional" />  
  </xs:complexType>  
  <xs:complexType name="DefaultResponseDefinition">  
    <xs:attribute name="MethodName" type="StoreMethodName" use="required" />  
    <xs:attribute name="HResult" type="ResponseCodes" use="required" />  
  </xs:complexType>  
</xs:schema>

Conditions requises

Client minimal pris en charge

Windows 8 [Applications Windows Store uniquement]

Serveur minimal pris en charge

Windows Server 2012 [Applications Windows Store uniquement]

Espace de noms

Windows.ApplicationModel.Store
Windows::ApplicationModel::Store [C++]

Métadonnées

Windows.winmd

Voir aussi

Exemple d'application d'évaluation et d'acquisition d'applications

 

 

Afficher:
© 2015 Microsoft