Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez mettre en cache des objets de données dans une personnalisation au niveau du document afin que les données soient accessibles hors connexion ou sans ouvrir Microsoft Office Word ou Microsoft Office Excel. Pour mettre en cache un objet, l’objet doit avoir un type de données qui répond à certaines exigences. De nombreux types de données courants dans le .NET Framework répondent à ces exigences, notamment String, DataSetet DataTable.
S’applique à : Les informations contenues dans cette rubrique s’appliquent aux projets au niveau du document pour Excel et Word. Pour plus d’informations, consultez Fonctionnalités disponibles par type d’application et de projet Office.
Il existe deux façons d’ajouter un objet au cache de données :
Pour ajouter un objet au cache de données lorsque la solution est générée, appliquez l’attribut CachedAttribute à la déclaration d’objet. Pour plus d’informations, consultez Guide pratique pour mettre en cache des données à utiliser hors connexion ou sur un serveur.
Pour ajouter par programmation un objet au cache de données au moment de l'exécution, utilisez la méthode
StartCachingd'un élément hôte, telles que les classesThisDocumentouThisWorkbook. Pour plus d’informations, consultez Guide pratique pour mettre en cache par programmation une source de données dans un document Office.Après avoir ajouté un objet au cache de données, vous pouvez accéder aux données mises en cache et les modifier sans démarrer Word ou Excel. Pour plus d’informations, consultez Accéder aux données dans les documents sur le serveur.
Conditions requises pour les objets de données à mettre en cache
Pour mettre en cache un objet de données dans votre solution, l’objet doit répondre à ces exigences :
Être un champ ou une propriété publique en lecture/écriture d’un élément hôte, tel que la classe
ThisDocumentouThisWorkbook.Il ne s’agit pas d’un indexeur ou d’une autre propriété paramétrable.
En outre, l’objet de données doit être sérialisable par la XmlSerializer classe, ce qui signifie que le type de l’objet doit avoir ces caractéristiques :
Être un type public.
Avoir un constructeur public sans paramètres.
N’exécutez pas de code qui nécessite des privilèges de sécurité supplémentaires.
Exposez uniquement les propriétés publiques autorisant la lecture et l'écriture (les autres propriétés seront ignorées).
Ne pas exposer de tableaux multidimensionnels (les tableaux imbriqués sont acceptés).
Ne retourne pas d’interfaces à partir de propriétés et de champs.
N’implémentez pas IDictionary si c’est une collection.
Lorsque vous cachez un objet de données, Visual Studio Tools pour Office sérialise l’objet dans une chaîne XML stockée dans une partie XML personnalisée dans le document. Pour plus d’informations, consultez vue d’ensemble des composants XML personnalisés.
Limites de taille des données mises en cache
Il existe certaines limites à la quantité totale de données que vous pouvez ajouter au cache de données dans un document et à la taille de n’importe quel objet individuel dans le cache de données. Si vous dépassez ces limites, l’application peut se fermer de manière inattendue lorsque les données sont enregistrées dans le cache de données.
Pour éviter ces limites, suivez ces instructions :
N’ajoutez aucun objet de plus de 10 Mo au cache de données.
N’ajoutez pas plus de 100 Mo de données totales au cache de données dans un document unique.
Il s’agit de valeurs approximatives. Les limites exactes dépendent de plusieurs facteurs, notamment la RAM disponible et le nombre de processus en cours d’exécution.
Contrôler le comportement des objets mis en cache
Pour mieux contrôler le comportement d’un objet mis en cache, vous pouvez implémenter l’interface ICachedType sur le type de l’objet mis en cache. Par exemple, vous pouvez implémenter cette interface si vous souhaitez contrôler la façon dont l’utilisateur est averti lorsque l’objet a été modifié. Pour obtenir des exemples de code qui montrent comment implémenter ICachedType, consultez la ControlCollection classe dans l’exemple de contrôles dynamiques Excel et l’exemple de contrôles dynamiques Word dans les exemples de développement Office et les procédures pas à pas.
Conserver les modifications apportées aux données mises en cache dans des documents protégés par mot de passe
Si vous mettez en cache des objets de données dans un document protégé par un mot de passe, les modifications apportées aux données mises en cache ne sont pas enregistrées. Vous pouvez enregistrer les modifications apportées aux données mises en cache en remplaçant deux méthodes. Remplacez ces méthodes pour supprimer temporairement la protection lorsque le document est enregistré, puis réappliquez la protection une fois l’opération d’enregistrement terminée.
Pour plus d’informations, consultez Guide pratique pour mettre en cache des données dans un document protégé par mot de passe.
Empêcher la perte de données lors de l’ajout de valeurs Null au cache de données
Lorsque vous ajoutez des objets au cache de données, tous les objets mis en cache doivent être initialisés en une valeur non null avant que le document soit enregistré et fermé. Si un objet mis en cache a une valeur Null lorsque le document est enregistré et fermé, le runtime Visual Studio Tools pour Office supprime automatiquement tous les objets mis en cache du cache de données.
Si vous ajoutez un objet avec une valeur null au cache de données en utilisant l’attribut CachedAttribute au moment de la conception, vous pouvez utiliser la classe ServerDocument pour initialiser les objets de données mis en cache avant que le document ne soit ouvert. Cela est utile si vous souhaitez initialiser les données mises en cache sur un serveur sans Word ou Excel installé, avant l’ouverture du document par un utilisateur final. Pour plus d’informations, consultez Accéder aux données dans les documents sur le serveur.
Contenu connexe
- Guide pratique pour mettre en cache des données à utiliser hors connexion ou sur un serveur
- Guide pratique pour mettre en cache par programmation une source de données dans un document Office
- Guide pratique pour mettre en cache des données dans un document protégé par mot de passe
- Procédure pas à pas : créer une relation maître-détail à l’aide d’un jeu de données mis en cache