Partager via


CompoundAction, classe

Gère un groupe de modifications qui sont traitées comme une opération unique.

Cette API n'est pas conforme CLS. L'alternative conforme CLS est [None].

Hiérarchie d'héritage

System.Object
  Microsoft.VisualStudio.Package.CompoundActionBase
    Microsoft.VisualStudio.Package.CompoundAction

Espace de noms :  Microsoft.VisualStudio.Package
Assemblys :   Microsoft.VisualStudio.Package.LanguageService.9.0 (dans Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.10.0 (dans Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.11.0 (dans Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
  Microsoft.VisualStudio.Package.LanguageService (dans Microsoft.VisualStudio.Package.LanguageService.dll)

Syntaxe

'Déclaration
<CLSCompliantAttribute(False)> _
Public Class CompoundAction _
    Inherits CompoundActionBase
[CLSCompliantAttribute(false)]
public class CompoundAction : CompoundActionBase

Le type CompoundAction expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique CompoundAction Initialise une nouvelle instance de la classe CompoundAction.

Début

Méthodes

  Nom Description
Méthode publique Abort Termine l'action composite actuelle, levant loin toutes les modifications. (Substitue CompoundActionBase.Abort().)
Méthode publique Close Ferme l'action composite et valide toutes les modifications au fichier source. (Substitue CompoundActionBase.Close().)
Méthode publique Dispose() Libère toutes les ressources juste avant que l'objet d'CompoundAction soit détruit.
Méthode publique Dispose() Libère toutes les ressources juste avant que l'objet d'CompoundAction soit détruit. (Hérité de CompoundActionBase.)
Méthode publique Equals Détermine si l'objet Object spécifié est égal à l'objet Object actuel. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique FlushEditActions Purge les actions en attente de modification de l'action composite actuelle. (Substitue CompoundActionBase.FlushEditActions().)
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)

Début

Champs

  Nom Description
Champ protégé action Interface pour une action de CompoundAction. (Hérité de CompoundActionBase.)
Champ protégé opened Spécifie si une action composite a été ouverte. (Hérité de CompoundActionBase.)

Début

Remarques

Cette classe est utilisée pour simplifier encapsulant une collection de modifications dans un événement annulable unique.Cela est accompli en appelant la méthode d'OpenCompoundAction sur l'interface d'IVsCompoundAction obtenue à partir de l'objet actuel d'IVsTextLines enregistré dans l'objet d'Source.Lorsque cette classe est supprimée désactiver, l'interface d'IVsCompoundAction est fermée et ce des validations tous les événements de modification faits à l'objet d'IVsTextLines comme opération unique.

Remarques à l'attention des implémenteurs

Cette classe contient tous les éléments nécessaires pour ouvrir une action composite donnée un objet d'Source et fermer cette action lorsque cette classe est supprimée est désactivé.

Remarques à l'attention des appelants

Instanciez un objet d'CompoundAction avec l'objet d'Source lorsque vous devez encapsuler un ou plusieurs modifications qui peuvent être annulées dans une action unique.Exécutez vos modifications de façon normale.Lorsque le nouvel objet d'CompoundAction est supprimé, les modifications sont enregistrées en tant qu'action unique.

Si vous avez accès à l'objet d'IVsTextView, utilisez la classe d'CompoundViewAction à la place comme elle permet à l'affichage de texte d'optimiser les modifications -le seulement que le résultat final est vu par l'utilisateur.

Exemples

Cet exemple indique comme utiliser la classe CompoundAction.Cet exemple insère une liste de mots à la position actuelle dans le fichier source.Sans objet d'CompoundAction, chacune de ces insertions est traitée comme un événement séparé de modification et requiert une opération d'annulation distincte.Toutefois, avec l'objet d'CompoundAction, la liste entière peut être annulée avec une opération d'annulation unique.

using Microsoft.VisualStudio.Package

namespace MyLanguagePackage
{
    class CMyLanguageService : LanguageService
    {
        // Insert the list of words, one per line.
        void InsertWords(Source src,string[] wordList)
        {
            if (LastActiveTextView != null)
            {
                CompoundAction action = new CompoundAction(src,"Update source");
                using (action)
                {
                    int currentLine = 0;
                    int currentCol = 0;
                    LastActiveTextView.GetCaretPos(out currentLine, out currentCol);
                    // Insert list in reverse so the words appear in the proper
                    // order in the sourec file.
                    for (int i = wordList.Length - 1, i >= 0; i--)
                    {
                        string w = wordList[i] + "\n";
                        src.SetText(currentLine, currentCol, currentLine, currentCol, w);
                    }
                }
            }
        }
    }
}

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Microsoft.VisualStudio.Package, espace de noms