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 | |
---|---|---|
CompoundAction | Initialise une nouvelle instance de la classe CompoundAction. |
Début
Méthodes
Nom | Description | |
---|---|---|
Abort | Termine l'action composite actuelle, levant loin toutes les modifications. (Substitue CompoundActionBase.Abort().) | |
Close | Ferme l'action composite et valide toutes les modifications au fichier source. (Substitue CompoundActionBase.Close().) | |
Dispose() | Libère toutes les ressources juste avant que l'objet d'CompoundAction soit détruit. | |
Dispose() | Libère toutes les ressources juste avant que l'objet d'CompoundAction soit détruit. (Hérité de CompoundActionBase.) | |
Equals | Détermine si l'objet Object spécifié est égal à l'objet Object actuel. (Hérité de Object.) | |
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.) | |
FlushEditActions | Purge les actions en attente de modification de l'action composite actuelle. (Substitue CompoundActionBase.FlushEditActions().) | |
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
MemberwiseClone | Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.) | |
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
Début
Champs
Nom | Description | |
---|---|---|
action | Interface pour une action de CompoundAction. (Hérité de CompoundActionBase.) | |
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.