Condividi tramite


Classe CompoundAction

Gestisce un gruppo di operazioni di modifica che vengono trattate come una sola operazione.

Questa API non è conforme a CLS. L'alternativa conforme a CLS è [None].

Gerarchia di ereditarietà

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

Spazio dei nomi:  Microsoft.VisualStudio.Package
Assembly:   Microsoft.VisualStudio.Package.LanguageService.9.0 (in Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.10.0 (in Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.11.0 (in Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
  Microsoft.VisualStudio.Package.LanguageService (in Microsoft.VisualStudio.Package.LanguageService.dll)

Sintassi

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

Il tipo CompoundAction espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico CompoundAction Inizializza una nuova istanza di CompoundAction classe.

In alto

Metodi

  Nome Descrizione
Metodo pubblico Abort Termina l'azione composta corrente, generando tramite tutte le modifiche. (Esegue l'override di CompoundActionBase.Abort()).
Metodo pubblico Close Chiude l'azione composta ed eseguire il commit delle modifiche al file di origine. (Esegue l'override di CompoundActionBase.Close()).
Metodo pubblico Dispose() Libera tutte le risorse prima CompoundAction l'oggetto viene eliminato.
Metodo pubblico Dispose() Libera tutte le risorse prima CompoundAction l'oggetto viene eliminato. (Ereditato da CompoundActionBase)
Metodo pubblico Equals Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico FlushEditActions Svuota le azioni in corso di modifica details composta corrente. (Esegue l'override di CompoundActionBase.FlushEditActions()).
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)

In alto

Campi

  Nome Descrizione
Campo protetto action interfaccia per un'azione di CompoundAction. (Ereditato da CompoundActionBase)
Campo protetto opened specifica se un'azione composta è stata aperta. (Ereditato da CompoundActionBase)

In alto

Note

Questa classe viene utilizzata per semplificare il wrapping di una raccolta di operazioni di modifica in un solo evento annullabile.Questo risultato si ottiene chiamando OpenCompoundAction metodo su IVsCompoundAction collegare che si ottiene dalla corrente IVsTextLines oggetto archiviato in Source oggetto.Quando questa classe viene eliminato da, IVsCompoundAction l'interfaccia viene chiusa e il commit di tutti gli eventi di modifica fatti a IVsTextLines oggetto come una sola operazione.

Note per gli implementatori

Questa classe contiene tutto il necessario per aprire una classe fornita azione composta Source oggetto e chiudere tale azione quando questa classe viene eliminato da.

Note per i chiamanti

Creare un'istanza di un oggetto CompoundAction oggetto con Source oggetto quando è necessario eseguire il wrapping di una o più operazioni di modifica che possono essere annullate in una singola azione.Quindi eseguire le operazioni di modifica come normale.quando il nuovo CompoundAction l'oggetto viene eliminato, le operazioni di modifica viene memorizzato come una sola azione.

Se si ha accesso a IVsTextView oggetto, utilizzare CompoundViewAction classe anziché come consente alla visualizzazione di testo ottimizzi le modifiche in modo che solo il risultato finale viene rappresentato dall'utente.

Esempi

In questo esempio viene illustrato come utilizzare CompoundAction classe.In questo esempio viene inserito un elenco di parole nella posizione corrente nel file di origine.senza CompoundAction oggetto, ciascuno degli inserimenti viene considerato come un evento distinto di modifica e richiede un'operazione di annullamento separata.tuttavia, con CompoundAction oggetto, l'intero elenco può essere interrotto con una singola operazione di annullamento.

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);
                    }
                }
            }
        }
    }
}

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.Package